Fixed
- Removed Elixir compile warnings.
Security
- Verify CA certificates with
:certifi
(~> 2.5) by default. This is considered a breaking change for anyone using Kadabra for anything other than Pigeon.
Changed
- Minimum Elixir version bumped to 1.6.
Fixed
- Removed Elixir 1.11 compile warnings.
- Removed some compile warnings.
- Fixed ArithmeticError when calculating how many streams to request on infinite stream sets.
- Fixed supervisor crash report during normal connection shutdown.
- Removed
GenStage
dependency. - GOAWAY error logger messages now disabled by default.
Re-enable with
config :kadabra, debug_log?: true
.
- Fixed
{:closed, pid}
task race condition during connection cleanup. - Everything is supervised under
Kadabra.Application
again, instead of handling supervision yourself.
- Send exactly number of allowed bytes on initial connection WINDOW_UPDATE.
- Default settings use maximum values for MAX_FRAME_SIZE and INITIAL_WINDOW_SIZE.
- Incoming PING and WINDOW_UPDATE frames are now validated, closing the connection if an error is encountered.
- Fixed: can no longer accidentally send 0-size WINDOW_UPDATE frames.
- Fixed: don't send WINDOW_UPDATE frames larger than remote server's available connection flow window.
- Support for
http
URIs. - Requests are now buffered with GenStage.
- Added
Kadabra.head/2
andKadabra.delete/2
. Kadabra.open/3
replaced withKadabra.open/2
.- Scheme, host and port are now automatically parsed from the URI string. See the README for examples.
- Socket options passed as
:tcp
/:ssl
, respectively.
- Removed
:reconnect
functionality.
- Fixed: Streams properly killed if hpack table crashes.
- Removed unused
Scribe
dependency.
- Fixed:
noproc
crash caused by race condition on recv GOAWAY.
- Fixed: ES flag properly set on certain HEADERS frames.
- Fixed: Memory leak on connection crashes.
- New supervision structure.
Kadabra.open/2
now returns a supervisor pid, but the API for making requests remains unchanged.
- Fixed: Connections properly respect settings updates.
- Fixed: Hpack memory leak on connection close.
- Fixed: Connection settings defaults are now actually default.
- Fixed: Sending payloads larger than the stream window.
- Minimum requirements are now Elixir 1.4/OTP 19.
- Performance improvements for individual streams.
- Fixed: multiple connections now supported per host.
- Request responses now return with new
%Stream.Response{}
struct. - Push promises can be intercepted with
{:push_promise, %Stream.Response{}}
messages.
Connection
now respectsmax_concurrent_streams
.- Fixed: proper WINDOW_UPDATE responses on received DATA frames.
- Fixed: calling
Kadabra.open/3
withreconnect: false
to disable automatic reconnect on socket close.