Swiftpack.co - Package - apple/swift-nio-http2

SwiftNIO HTTP/2

This project contains HTTP/2 support for Swift projects using SwiftNIO.

Building

swift-nio-http2 is a SwiftPM project and can be built and tested very simply:

$ swift build
$ swift test

Versions

Just like the rest of the SwiftNIO family, swift-nio-http2 follows SemVer 2.0.0 with a separate document declaring SwiftNIO's Public API.

swift-nio-http2 1.x

swift-nio-http2 versions 1.x are a pure-Swift implementatation of the HTTP/2 protocol for SwiftNIO. It's part of the SwiftNIO 2 family of repositories and does not have any dependencies besides swift-nio and Swift 5. As the latest version, it lives on the master branch.

To depend on swift-nio-http2, put the following in the dependencies of your Package.swift:

.package(url: "https://github.com/apple/swift-nio-http2.git", from: "1.0.0"),

swift-nio-http2 0.x

The legacy swift-nio-http 0.x is part of the SwiftNIO 1 family of repositories and works on Swift 4.1 and newer but requires nghttp2 to be installed on your system. The source code can be found on the nghttp2-support-branch.

Developing SwiftNIO HTTP/2

For the most part, SwiftNIO development is as straightforward as any other SwiftPM project. With that said, we do have a few processes that are worth understanding before you contribute. For details, please see CONTRIBUTING.md in this repository.

Github

link
Stars: 195
Help us keep the lights on

Dependencies

Used By

Total:

Releases

0.2.1 - Jan 9, 2019

Semver Patch

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

0.2.0 - Dec 10, 2018

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)