bandit
bandit copied to clipboard
Bandit is a pure Elixir HTTP server for Plug & WebSock applications
The HTTP/1.1 stack doesn't currently respect the top-level `read_timeout` parameter. This comes down mostly to passing it into `Socket.recv` calls and returning it on keepalive loops. For testing prior art,...
There are a number of places (particularly in the h2 stack) where we're building up buffers based on iodata input and end up needing to flatten them to binaries earlier...
Are there any concrete plans on how to integrate WebSockets? Currently bandit doesn't do any routing and delegates everything to `Plug` (which doesn't support WebSockets (yet?)). Will bandit handle the...
This is something of a blanket ticket; actual work is a bit more adhoc. Contributors should feel free to use this ticket as a rallying point for discussion on the...
As discussed at https://github.com/elixir-plug/plug/issues/948#issuecomment-833151243, Plug itself should be responsible for canonicalizing URIs. It's a tricky problem with inevitable arbitrary decisions to be made, and these decisions should be centralized into...
As discussed at https://github.com/elixir-plug/plug/pull/535#issuecomment-555781624, Plug lacks suppor for HTTP trailers. Beyond their usefulness in the real world, they could also help to tie off a couple of awkward spots when...
As specified in [RFC7540§3.2](https://datatracker.ietf.org/doc/html/rfc7540#section-3.2), allow HTTP/1.1 connections to upgrade to h2 Most of the plumbing is in place for this in the form of `Bandit.DelegatingHandler`. For examples of how to...
We're compliant with [RFC7540§6.8](https://datatracker.ietf.org/doc/html/rfc7540#section-6.8), but we could consider doing a better job of continuing to process currently open streams after receiving a GOAWAY frame. Currently we just shut ourselves down...
Hi, just exploring this project to see if it's something we're able to use in a running application and seems ideal for performance. One thing that I haven't been able...