Skip to content

Releases: apple/swift-nio-http2

SwiftNIO HTTP/2 1.2.1

22 May 17:22
Compare
Choose a tag to compare

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

02 May 14:39
Compare
Choose a tag to compare

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

12 Apr 15:52
ae57c2a
Compare
Choose a tag to compare

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

  • Fixed a bug where zero-length SETTINGS frames would be treated as an error. (#88)
  • Substantially decreased the allocation overhead of encoding HTTP headers. (#86)
  • Documentation cleanups. (#82, #82)

SwiftNIO HTTP/2 1.0.1

27 Mar 18:37
a92923b
Compare
Choose a tag to compare

Semver Patch

  • Added validation to enforce that END_STREAM is set on HEADERS frames containing trailers. (#81)
  • Forced HTTP2StreamMultiplexer to forward on channelActive to the parent channel. (#80)
  • Miscellaneous docs fixes. (#76, #77, #78)

SwiftNIO HTTP/2 1.0.0

27 Mar 18:35
a9fc7c1
Compare
Choose a tag to compare

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

09 Jan 16:13
Compare
Choose a tag to compare

Semver Patch

  • Initiate HTTP/2 parser on handlerAdded as well as on channelActive, to facilitate adding HTTP/2 handlers to pipelines after setup. (#36)

SwiftNIO HTTP/2 0.2.0

10 Dec 15:48
f1d8754
Compare
Choose a tag to compare

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

  • Added support for newish nghttp2 versions. (#23)
  • Added support for old nghttp2 versions. (#29)

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)