Releases: apple/swift-nio-http2
Releases · apple/swift-nio-http2
SwiftNIO HTTP/2 1.2.1
Semver Patch
- Fixed an issue where stream channels would not be closed if the underlying transport vanished. (#131)
- Fixed an issue where flushed frames could very rarely get "stuck" and not emitted until the next flush. (#125)
- Fixed an issue where flow controlled inbound frames could have their flow control state counted more than once. (#114)
- Improved performance by removing indirection between stream channels and the stream multiplexer. (#126)
- Fixed up system for notifying stream channels that they've become active, avoiding issues when setting up such channels. (#124)
- Correctly notify the outbound frame buffer of changes to the remote peer's value of
SETTINGS_MAX_CONCURRENT_STREAMS
. (#113) - Allow closing idle stream channels that have never been used. (#123)
- Improved performance by removing unnecessary future callbacks in stream channel setup. (#116)
- Reduced heap allocations when creating stream channels. (#115)
- Reduced heap allocations when decoding HPACK header blocks. (#118)
- Reduced copying when transforming between HTTP/1 and HTTP/2 header blocks. (#112)
- Removed an inadvertent copy-on-write when buffering inbound frame bytes. (#111)
- Boxed some cases of
HTTP2Frame.FramePayload
to avoid the costs of copying the data about. (#110) - Improved test setup. (#129, #130)
- Added allocation tests. (#122)
- Added performance tests. (#117)
- Turned on warnings as errors in CI. (#127)
SwiftNIO HTTP/2 1.2.0
Semver Minor
- Added support for policing correct content length headers, with support for disabling these checks if needed. (#98)
Semver Patch
- Fixed an off-by-one error when calculating the valid bounds of certain HTTP/2 settings. (#97)
- Fixed an issue where we'd incorrectly reject headers that were larger than the dynamic table size, instead of flushing the table. (#99)
- Fixed an issue where max stream ID was forbidden in GOAWAY when sent by servers. (#102)
- Removed unnecessary memory copies in the state machine. (#104)
- Avoided unnecessary heap allocation when parsing frame headers. (#107)
- Fixed an issue where NIO would consider WINDOW_UPDATE frames on closed streams to be a connection error of type PROTOCOL_ERROR. (#109)
- Added "Show on Github" link to API docs. (#108)
SwiftNIO HTTP/2 1.1.0
Semver Minor
- Added additional validation for inbound and outbound HPACK headers. This change adds a number of new errors and a new API to
NIOHTTP2Handler
to disable this validation. (#84, #90, #91, #94, #95) - Rewrote the representation of HPACK headers for a substantial performance improvement. (#89)
Semver Patch
SwiftNIO HTTP/2 1.0.1
SwiftNIO HTTP/2 1.0.0
This is the first major release of SwiftNIO HTTP/2. It substantially changes the API and moves the implementation to a pure-Swift model. As the changes are so large, we do not have release notes here: please consider the 1.0 revision as an entirely clean slate.
SwiftNIO HTTP/2 0.2.1
Semver Patch
- Initiate HTTP/2 parser on
handlerAdded
as well as onchannelActive
, to facilitate adding HTTP/2 handlers to pipelines after setup. (#36)
SwiftNIO HTTP/2 0.2.0
Semver Major
- Changed around the types used on
HTTP2Frame
. (#16) - Formally required Swift 4.1, though Swift 4.0 never worked with this repo. (#21)
Semver Minor
Semver Patch
- Laid some groundwork for pure-Swift implementation. (#10, #14)
- Fixed issue where child channels would not be correctly activated. (#27)
- Fixed issue where trailers would fail to be sent. (#25)
- Prevented crashes when the client preamble was invalid. (#12)
- Prevented crashes when SETTINGS_MAX_CONCURRENT_STREAMS was set to be higher than the cache of old streams. (#13)
- Prevented crashes due to discarding active streams instead of invalid ones. (#11)
- Cleaned up submodule checkout. (#20)
- Documentation improvements. (#18)
- Many test improvements (#8, #9, #15)