Comments (13)
I think might wait until we actually have a few people interested before getting something specifically for ace such as a gitter. My suggestion keep anything that is useful to have as permanent in Github and chat on slack for the rest.
from ace.
I think this is a great idea. If we can come up with a good enough road map with small enough steps it might help people who what to go back through the commit history.
Perhaps instead of laying out the whole process now we should come up with the next 10 steps.
Any additions to the following.
- Minimal echo server
- handle client disconnect (thanks for the PR)
- make the change discussed here
- make proper mix application with tests (TDDing the process from then on) 0.2
- setup dializer (think we should make the most of having the setup process as an example in vagrant)
- send message on connection 0.3
- send server pushed message
- Have a behaviour callback module
- handle multiple connections (either fixed or infinite) 0.4
- Have an acceptor pool
I think that takes us to a working TCP server which should be a point to decide the next steps on the roadmap
from ace.
These steps looks good to me.
I was thinking to make the multiple connections handle early as possible, but probably this way
the source is going to be more readable.
from ace.
I suggest you to open a new channel at Elixir Slack to get more people working on it.
from ace.
Sounds good but It might be nice to keep the history. The elixir slack channel looses history after not that long.
Perhaps a section in the Elixir Forum be good. Perhaps the "learning elixir" category, something like "A road map for building an HTTP server"
Of course comments in github work to but I don't know how to get the elixir community in general to see them
from ace.
Yes saving the history can be useful for this project, a gitter could work then I think it keeps the messages for an unlimited time.
The forum is good for posting the milestones or asking questions, but only a few people using it compared to the slack channel.
from ace.
Satisfied I understand the details of reuseaddr
am moving on to rewriting the application as a mix project
from ace.
Published proper mix application, though I am having some issues with hex. Next step is I think dialyzer fun as I have never done this before.
from ace.
0.5.0 extensions should be
- passing socket information on connection
- having a behaviour
- having the ability to stop the connection at any point.
from ace.
timeouts would be good to have
from ace.
next step is motivated by multiple connections, supervision. Property test:-
- conn info
- raw packet echo
from ace.
I think that once pull request #6 is closed we can be finished with this road map. It might be a new issue to make the HTTP roadmap.
from ace.
because of my own wrangling with git pr6 is now replaced with #11
from ace.
Related Issues (20)
- Exceptions sometimes in production HOT 2
- Add an idle timeout option
- Ace's way of handling large headers HOT 12
- Graceful exits for write timeouts? HOT 3
- There's no request backpressure HOT 5
- Add HTTP/2 request backpressure.
- handle_tail doesn't get called with GET requests HOT 2
- State between requests? HOT 2
- Add test for a GET request with a body HOT 1
- I get this warning, even with `use Raxx.SimpleServer` HOT 6
- add supports for QUIC
- HTTP2 CVEs HOT 3
- :elixir_errors.warn/3 no longer exists HOT 1
- :simple_one_for_one strategy deprecation warnings when running in Elixir v1.10 HOT 2
- Large response body fails HOT 6
- Bad Supervisor.start_child call HOT 2
- how to configure ACE for large file downloads (under http2) HOT 3
- CI optimisation - cache dialyxir plt filles
- some intermittent errors
- Updating to 0.16.1 results in Ace reporting errors HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ace.