derpycoder
Bandit server for Phoenix is next level, check it out!
Hey Guys,
Did you know that there’s an alternative to Cowboy for Phoenix, called Bandit?
And it recently reached {:bandit, "~> 1.0-pre"} version!
Here’s my observation:
In Cowboy based phoenix builds, I noticed that there’s a delay before the websocket connection happened.
As you can notice in the gif below. Other pages load within 100ms, however the websocket connection reaches close to 435ms:

That doesn’t happen with Bandit!
All the resources, along with the socket connection happen within 100ms!

Check it out:
https://github.com/mtrudel/bandit
Most Liked
mtrudel
I’m here if anyone has any specific blocking issues for adoption at your shops!
hubertlepicki
I’m already using it in production. It works. The performance is about the same in my use case.
On the plus side, Bandit is built on top of OTP primitives and doesn’t do the annoying silent crashes that Cowboy does.
On the downside, it’s still fairly young, and there are rough edges. Pre-9 version had some breaking bugs, the current (pre-10) version seems okay but some behaviors differ from Cowboy like the lack of interrupting requests when client drops off. We also observed increased memory usage, but these things can be related to one another.
Generally, it looks like it’s the future, and at some point should probably be the default over Cowboy, but you should use it with caution on production (I’m hovering my hand over the switch back to Cowboy just in case for now).
mtrudel
@hubertlepicki and others; 1.3.0 just went out with a fix for the long-standing issue of increasing memory use (which wasn’t really a memory issue so much as it was an issue with how memory use is reported, but anyway), along with a few other fixes. See CHANGELOG as always. Hopefully this fixes your issue; please report back if so as I’d love to have more evidence that we’ve finally licked this.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









