Comments (11)
This looks like it will instead be a conf talk but I will try and write it up as well
from ace.
Can you also compare against Phoenix? I think that's a question many people have when they see this project.
Also 👍 for session types. Good stuff.
from ace.
I will think about how to do that. Though I try not too go to far down the vs route. There won't be a database layer to compare for starters. Also I think the complexity of plug + phoenix is self evident once you look under the covers but for anyone who is happy for convenience in preference to simplicity that is their choice
from ace.
Some comparison might be worth it, to give people looking at it an idea what it does and what it doesn't give you. So probably stating that Ace is not competing with Phoenix, but comparing it to Plug and raw cowboy would be useful.
from ace.
@sashaafm If you are looking for more of an answer. It all follows from thinking of HTTP as message passing rather than a conn that is written to/ read from. That lead to Raxx https://github.com/crowdhailer/raxx#getting-started the rest mostly just follows from there
from ace.
@sashaafm This is a post I have written to explain why raxx. http://crowdhailer.me/2018-02-23/http-is-message-passing/
from ace.
covered by posted blog articlle and elixir daze talk
from ace.
Hi. I'm looking into Ace/Raxx and I was thinking about trying it as a replacement for Phoenix/Plug that were very good to help me start with Elixir Web apps, but not anymore. Nevertheless, you said that "There won't be a database layer to compare for starters". Ok. I agree. But could you share pragmatic examples of using a database? Otherwise that could be a stopper for now for someone like me that came from the front-end and databases (although working with PostgreSQL) are not something that I care about a lot and as such I'm very interested in some simplicity over that interface.
Do you think you'll do anything soon to guide/simplify over there?
Thanks!
from ace.
Hi @Pjino I don't have any public examples with database access setup. However I have used Ecto with Raxx and the docs in Ecto are easy to follow. There's really no reason web and db concerns need to be conflated and using Ecto in a Raxx app doesn't present any problems.
The interface might have a couple of extra charachters now and again but updating a model is simple and explicit
{:ok, params} = URI.decode_www_form(request.body)
MyModel.changeset(%MyModel{}, params)
If you want to ask around for help try the #raxx channel on elixir slack
https://elixir-lang.slack.com/messages/C56H3TBH8/?
from ace.
Hi @CrowdHailer Thank you! So, this means we can go with Ecto! Ok. I'm using Ecto Myself, but as the purpose of this change would be to stay "pure" I didn't know your opinion on Ecto. Nevertheless, I suggest you to add just a few lines about using Ecto with Raxx so that it become clear that that's the way to go (and then, every Phoenix user knows Ecto).
GREAT work!
PS: Let me say (for truthiness sake) that when you started this 2 years ago I though you were just trying to "piss those guys off a little" with some small details. But now...I understand your point and share your view. I'm glad you didn't quit it!
from ace.
@Pjino I'll think about adding something about Ecto, might make more sense in a blog post than a README. There is no correction between Raxx and Ecto but you are right it might be a special case because of everyones familiarity with Ecto
Yeah it has taken a little while for me to work out how to explain well what I'm up to. I'm glad you've come around for another look
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.