swift-nio-http2

HTTP/2 support for SwiftNIO

APACHE-2.0 License

Stars
444
Committers
39

Bot releases are visible (Hide)

swift-nio-http2 - SwiftNIO HTTP/2 1.19.0

Published by fabianfett almost 3 years ago

SemVer Minor

  • Deliver outbound stream errors to channels. (#315)

SemVer Patch

  • Add Transfer-Encoding chunked to HTTP1 requests and responses. (#316)
  • Forward all reads before stream channel inactive (#317)
swift-nio-http2 - SwiftNIO HTTP/2 1.18.5

Published by Lukasa almost 3 years ago

SemVer Patch

  • Remove forbidden HTTP1 headers even if no connection header is present (#311)

Other Changes

  • Swift nightly has improved alloc counts. (#314)
swift-nio-http2 - SwiftNIO HTTP/2 1.18.4

Published by glbrntt about 3 years ago

SemVer Patch

  • Improve performance of HPACKHeaders.subscript(canonicalForm:) (#304, #308, #310)
  • Don't count CR or LF as whitespace when trimming whitespace from header values (#306)
  • Ignore empty values when returning canonical form of header values (#307)

Other Changes

  • Update to 5.5 release in CI (#301)
  • Account for improved allocs on nightly (#302)
  • Add perf and alloc tests for getting headers (#303)
swift-nio-http2 - SwiftNIO HTTP/2 1.18.3

Published by glbrntt about 3 years ago

SemVer Patch

  • Clean up imports and dependencies (#300)

Other Changes

  • Fix doc generation and jazzy version (#298)
swift-nio-http2 - SwiftNIO HTTP/2 1.18.2

Published by fabianfett about 3 years ago

SemVer Patch

  • Use non-deprecated API for removing handlers (#297)
swift-nio-http2 - SwiftNIO HTTP/2 1.18.1

Published by Davidde94 about 3 years ago

SemVer Patch

  • Enable tests for Android (#296, patch credit to @buttaface)
  • HTTP2ToHTTP1Codec: Fix receiving empty .body before .end (#295)

Other Changes

  • Bump Swift version in build_podspec.sh (#294)
swift-nio-http2 - SwiftNIO HTTP/2 1.18.0

Published by Davidde94 over 3 years ago

SemVer Minor

  • Remove support for Swift 5.0 and 5.1 (#292)

SemVer Patch

  • Update NIO dependency to 2.30.0 (#293)

Other Changes

  • CI setup for Swift main and 5.5 nightlies, and use 5.4 release image (#277)
  • update latest alloc limits from NIO 2.28.0 release (#286)
  • Add fuzzing harness to swift-nio-http2. (#288)
  • stop publishing the executable products (#289)
  • Update our allocation counter numbers. (#290)
swift-nio-http2 - SwiftNIO HTTP/2 1.17.0

Published by glbrntt over 3 years ago

SemVer Minor

  • Add sync option support to HTTP2StreamChannel (#282)

SemVer Patch

  • Use sync options when creating a stream channel (#283)

Other Changes

  • Add SECURITY.md (#280)
  • Update allocation count requirements (#281)
  • Stop using deprecated API in allocation counting tests (#284)
swift-nio-http2 - SwiftNIO HTTP/2 1.16.3

Published by Lukasa over 3 years ago

SemVer Patch

  • Avoid unnecessary futures in stream creation (#271)
  • Re-add "run all" mode to performance tester (#272)

Other Changes

  • Use welcoming language (#274)
  • Swift 5.4 Docker setup (#275)
  • update code of conduct to version 1.4 (#278)
  • Delete dead code. (#279)
swift-nio-http2 - SwiftNIO HTTP/2 1.16.2

Published by Lukasa almost 4 years ago

Semver Patch

  • Reduce ARC in HeaderTableStorage.closestMatch (#268)
  • Remove generics that triggered ARC (#270)
  • Make HPACKHeaders methods inlinable. (#269)
swift-nio-http2 - SwiftNIO HTTP/2 1.16.1

Published by Lukasa almost 4 years ago

Semver Patch

  • Partially revert #263, fixing builds on Xcode 12 and 12.1. (#267)
  • Reduce the cost of flushing, substantially improving performance in high-stream-count scenarios. (#265)
  • Micro-optimise checked arithmetic in huffman decode. (#266)
swift-nio-http2 - SwiftNIO HTTP/2 1.16.0

Published by glbrntt almost 4 years ago

SemVer Minor

  • Add properties to HTTP2StreamID to determine stream initiator (#259)

SemVer Patch

  • Reduce allocations in OutboundFlowControlBuffer. (#257)
  • Implement StreamMap and replace Dictionary (#258)
  • Improve bulk stream teardown. (#261)
  • Use proper String unsafeUninitializedCapacity initializer. (#263)
  • Cheaper calculation of flushes. (#264)

Other Changes

  • Add watchOS deployment to PodSpec build script (#251)
  • Fix 'heder' typo (#252)
  • Add additional benchmarks and allocation tests. (#256, #260)
  • Move the huffman benchmark base64 out of init (#262)
swift-nio-http2 - SwiftNIO HTTP/2 1.15.0

Published by glbrntt about 4 years ago

SemVer Minor

  • Add a location to each of the 'NIOHTTP2Errors' (#247)

SemVer Patch

  • Shrink NIOHTTP2WindowUpdatedEvent to reduce allocations. (#239)
  • Make HTTP2StreamChannel non-generic (#242)
  • Remove a few unnecessary allocations. (#243)
  • Reduce allocations when peeking pseudo-headers. (#246)

Other Changes

  • Various improvements to testing infrastructure (#238, #248, #249)
  • Switch to main as the default development branch. (#250)
swift-nio-http2 - SwiftNIO HTTP/2 1.14.2

Published by Lukasa about 4 years ago

Semver Patch

  • Fixed an issue where we would get BadStreamStateTransition on certain I/O patterns. (#236)
  • Removed needless branch in HPACK compact integer decode. (#234)
swift-nio-http2 - SwiftNIO HTTP/2 1.14.1

Published by glbrntt about 4 years ago

SemVer Patch

  • Fixed a bug where extraneous WINDOW_UPDATE frames could be emitted when a stream is closed resulting in a connection error (#233)
swift-nio-http2 - SwiftNIO HTTP/2 1.14.0

Published by Lukasa about 4 years ago

Semver Minor

  • Bring HPACKHeaders functionality closer to HTTPHeaders from NIOHTTP1. (#232)

Semver Patch

  • Fixed an issue where autoRead in HTTP/2 child channels would not cause read to propagate through the pipeline, making it impossible to exert backpressure. (#231)

Other

  • Fixed the -f option in build_podspecs.sh. (#229) (patch credit to @MrMage)
swift-nio-http2 - SwiftNIO HTTP/2 1.13.0

Published by glbrntt about 4 years ago

Notable Changes

The release contains a fix for an ergonomic issue which could result in a connection error when first writing on streams in an order different to the order in which they were created. The issue is detailed in #214 and associated pull requests.

The fix required that HTTP/2 stream channels created by the local peer be assigned stream IDs when they first emit writes rather than when they are initialized. As such, HTTP/2 stream channels will now operate on HTTP2Frame.FramePayload when created using the new API. The old behaviour, where stream channels operate on HTTP2Frame, remains but is now deprecated.

The following functions were deprecated and replaced with equivalents which do not accept an HTTP2StreamID in the stream initializer closure:

  • HTTP2StreamMultiplexer.init,
  • HTTP2StreamMultiplexer.createStreamChannel,
  • Channel.configureHTTP2Pipeline,

In addition, the HTTP2 to HTTP1 codecs were also deprecated:

  • HTTP2ToHTTP1ClientCodec is deprecated in favor of HTTP2FramePayloadClientCodec
  • HTTP2ToHTTP1ServerCodec is deprecated in favor of HTTP2FramePayloadServerCodec

SemVer Minor

  • Fixed an ergonomics issue which could result in a connection error when writing on streams in an order different to their creation order (#215, #216, #217, #218, #219, #221, #222, #224, #225, #226, #227, #228).

Other Changes

  • Various changes to CI and testing (#211, #212, #223)
swift-nio-http2 - SwiftNIO HTTP/2 1.12.3

Published by glbrntt over 4 years ago

SemVer Patch

  • Fix various warnings emitted by new compilers (#208, #209, #210)
swift-nio-http2 - SwiftNIO HTTP/2 1.12.2

Published by glbrntt over 4 years ago

SemVer Patch

  • Update the podspec build script to not use exact version numbers (#206, #207)
swift-nio-http2 - SwiftNIO HTTP/2 1.12.1

Published by Lukasa over 4 years ago

Semver Patch

  • Fixed a bug where custom target window sizes were not used for remotely-initiated streams, only locally-initiated ones. (#205)
  • Better testing for HTTP/2 GREASE. (#204)
Package Rankings
Top 4.67% on Swiftpackageindex.com
Top 2.49% on Cocoapods.org