View Source
Changelog for 1.0.0-pre
- Add ability to send preamble frames when closing a WebSock connection (#211)
- Bump ThousandIsland to 1.0.0-pre.7 to fix leaking file descriptors on
Plug.Conn.sendfile/5
calls (thanks @Hermanverschooten!)
- BREAKING CHANGE Move
conn
value in telemetry events from measurements to metadata
- Add
method
, request_target
and status
fields to telemetry metadata on HTTP stop events - Improve RFC compliance regarding cache-related headers on deflated responses (#207, thanks @tanguilp!)
- Bump to Thousand Island
1.0.0-pre.6
- Doc improvements (particularly around implementation notes)
- Typespec improvements (thanks @moogle19!)
- Add support for
Plug.Conn.inform/3
on HTTP/1 connections (#180) - Add support for h2c upgrades (#186, thanks @alisinabh!)
- Internal refactoring of HTTP/1 content-length encoded body reads (#184, #190,
thanks @asakura & @moogle19!)
- Bump Thousand Island to 1.0.0-pre.6 (gaining support for suspend/resume API)
- Drop Elixir 1.12 as a supported target (it should continue to work, but is no
longer covered by CI)
- Fix crash when Plug used
Plug.Conn.get_peer_data/1
function on HTTP/1
connections (#170, thanks @moogle19!) - Fix port behaviour when connecting over unix socket (#176, thanks @asakura
& @ibarchenkov!)
- Use new ThousandIsland APIs for socket info (#167, thanks @asakura!)
- Handle nil connection close reason when closing a WebSocket
- Further improve logging on WebSocket upgrade errors (#149)
- Refactor HTTP/1 read routines (#158 & #166, thanks @asakura!)
- Improve logging on WebSocket upgrade errors (#149)
- Override any content-length headers that may have been set by Plug (#165)
- Send content-length on HTTP/2 responses where appropriate (#165)
- Send correct content-length header when sending deflated response (#151)
- Do not attempt to deflate if Plug sends a content-encoding header (#165)
- Improve corner case handling of content-length request header (#163, thanks
@ryanwinchester!)
- Handle case where ThousandIsland returns error tuples on some helper routines
(#162)
- Always use the declaed scheme if declared in a request-line or
:scheme
pseudo-header (#159) - Internal tidying (thanks @asakura!)
- Total overhaul of typespecs throughout the library (thanks @asakura!)
- Performance / correctness improvements to header length validation (#143,
thanks @moogle19!)
- Performance improvements to host header port parsing (#145 & #147, thanks
@ryanwinchester!)
- Improve WebSocket upgrade failure error messages to aid in diagnosis (#152)
- Consolidate credo config (#146, thanks @ryanwinchester!)
- Fix error in suggested version dependencies during 1.0-pre series (#142,
thanks @cvkmohan!)
- Respect read timeout for HTTP/1 keepalives (#140)
- Support Websock 0.5.1, including support for optional
WebSock.terminate/2
(#131)
- Use Req instead of Finch in tests (#137)
- Improve a few corner cases in tests (#136)
- Don't require transport_options to be a keyword list (#130, thanks @justinludwig!)
- Update Thousand Island dependency to 1.0-pre
Changelog for 0.7.x
- Bandit will now raise an error at startup if no plug is specified in config
(thanks @moogle19!)
- Fix crash at startup when using
otp_app
option (thanks @moogle19!) - Minor doc formatting fixes
- BREAKING CHANGE Rename top-level
options
field to thousand_island_options
- BREAKING CHANGE Rename
deflate_opts
to deflate_options
where used - Massive overhaul of documentation to use types where possible
- Bandit now uses a term of the form
{Bandit, ref()}
for id
in our child spec - Bumped to Thousand Island 0.6.7.
num_connections
is now 16384 by default
- Added top level support for the following convenience parameters:
port
can now be set at the top level of your configurationip
can now be set at the top level of your configurationkeyfile
and certfile
can now be set at the top level of your configuration
- Transport options are now validated by
Plug.SSL.configure/1
when starting
an HTTPS server - Rely on Thousand Island to validate options specified in
thousand_island_options
. This should avoid cases like #125 in the future.
- Drop explicit support for Elixir 1.11 since we no longer test it in CI (should
still work, just that it's now at-your-own-risk)
- Add logo to ex_doc and README
- Allow access to Thousand Island's underlying
shutdown_timeout
option - Fix test errors that cropped up in OTP 26
- Calling
Plug.Conn
adapter functions for HTTP/2 based requests are no longer
restricted to being called from the process which called Plug.call/2
- Added
startup_log
to control whether / how Bandit logs the bound host & port
at startup (Thanks @danschultzer) - Improved logging when the configured port is in use at startup (Thanks
@danschultzer)
- Update to Thousand Island 0.6.5
- Added advanced
handler_module
configuration option to options
- Support returning
x-gzip
as negotiated content-encoding
(previously would
negotiate a request for x-gzip
as gzip
)
- Added HTTP compression via 'Content-Encoding' negotiation, enabled by default.
Configuration is available; see Bandit
docs for details
- Minor refactor of internal HTTP/2 plumbing. No user visible changes
- Update documentation & messaging to refer to RFC911x RFCs where appropriate
- Validate top-level config options at startup
- Revise Phoenix adapter to support new config options
- Doc updates
- Add configuration points for various parameters within the HTTP/1, HTTP/2 and
WebSocket stacks. See Bandit
docs for details
Changelog for 0.6.x
- Modified telemetry event payloads to match the conventions espoused by
:telemetry.span/3
- Default shutdown timeout is now 15s (up from 5s)
- Update to Thosuand Island 0.6.4 (from 0.6.2)
- Support explicit setting of WebSocket close codes & reasons as added in WebSock
0.5.0
- Add comprehensive Telemetry support within Bandit, as documented in the
Bandit.Telemetry
module - Update our ThousandIsland dependnecy to pull in Thousand Island's newly
updated Telemetry support as documented in the
ThousandIsland.Telemetry
module - Fix parsing of host / request headers which contain IPv6 addresses (#97).
Thanks @derekkraan!
Changes
- Use Plug's list of response code reason phrases (#96). Thanks @jclem!
- Minor doc updates
- Close WebSocket connections with a code of 1000 (instead of 1001) when
shutting down the server (#89)
- Use 100 acceptor processes by default (instead of 10)
- Improvements to make WebSocket frame masking faster
- Remove logging entirely when client connections do not contain a valid protocol
- Refactor WebSocket support for about a 20% performance lift
- Add
nodelay
option to test suite to fix artificially slow WebSocket perf tests
- Log useful message when a TLS connection is made to plaintext server (#74)
- Update Thousand Island to 0.5.15 (quiets logging in timeout cases)
- Quiet logging in when client connections do not contain a valid protocol
- Refactor HTTP/1 for about a 20% performance lift
- Add WebSocket support to CI benchmark workflow
- Doc updates
- Allow multiple instances of Bandit to be started in the same node (#75)
- Improve error handling in HTTP/1 when protocol errors are encountered (#74)