Skip to content

Releases: hummingbird-project/hummingbird

v1.4.0

23 Mar 15:13
3c07665
Compare
Choose a tag to compare

Minor release changes

  • Add support for loading .env files via HBEnvironment.dotEnv()
  • Add HBEnvironment.merging to create an HBEnvironment by merging two other HBEnvironment together. Can use this alongside .dotEnv() to merge contents of .env file into your environment.
  • Add new HBApplication.Configuration member maxStreamedUploadSize so we can have different payload size requirements for streamed and non-streamed routes.
    • maxUploadSize applies to request payloads from non-streamed routes.
    • maxStreamedUploadSize applies to request payloads that are streamed.

## Patch release changes

  • Fixed crash when collating large byte buffer for async route

v1.3.0

20 Mar 16:27
f38a3ab
Compare
Choose a tag to compare

Minor release changes

  • Router improvements. PRs #177, #179
    • ** catch all.
    • match path components with prefix file.* or suffix *.ext.
    • Additional parameter capture format${param} which can also be used to capture the prefix or suffix of a path component.
  • Added HBParameters.getCatchAll() to return array of path components caught by **.

Other changes

  • Using package-benchmark for benchmarking hummingbird. Includes CI to check for performance degradation.
  • Added tests for FlatDictionary.

v1.2.0

27 Feb 17:32
91256df
Compare
Choose a tag to compare

Minor release changes

  • Add HBRequest.id to return a unique id for your request. PR #173
  • Add HBResponse.redirect to create a redirect response. PR #174

v1.1.1

22 Feb 07:07
9134719
Compare
Choose a tag to compare

Patch release changes

  • Fix bug where releasing Connections from ConnectionPool could reuse the connection immediately and also add it to the available connection list

v1.1.0

21 Feb 13:22
b9bdaf7
Compare
Choose a tag to compare

Minor release changes

  • Conform AsyncThrowingStream and AsyncStream to HBResponseGenerator so they can be returned from a route.
  • Added AsyncSequence.responseGenerator which can be returned from a route.

Patch release changes

  • Fix issue when HBApplication.stop was not waiting until the lifecycle was fully shutdown.

v1.0.0

08 Feb 15:27
Compare
Choose a tag to compare

This is the first stable version of Hummingbird the lightweight and flexible HTTP server.

Hummingbird provides an HTTP server with

  • A router for sending requests to the correct endpoint handler
  • Middleware framework for processing requests and responses. CORS, Logging and metrics middlewares are already provided.
  • TLS/HTTP2 support
  • Request decoding, response encoding using Codable.
  • Basic connection pool management
  • Persistent data framework. A memory version is available with Hummingbird. Redis and Fluent versions are available from hummingbird-redis and hummingbird-fluent packages.

Hummingbird Foundation provides

  • Codable support for JSON and URLEncoded forms.
  • File serving and writing

Hummingbird Jobs provides

  • A framework for defining workloads that can be offloaded to separate servers.
  • Comes with an implementation that uses memory for storing and running the jobs locally.
  • A Redis version is available from hummingbird-redis.

HummingbirdXCT provides

  • A testing framework for Hummingbird. Making it easier to test your application.

Changes since v1.0.0-rc.1

  • Add idle state handler configuration
  • Ensure stored endpoint always starts with a "/" and never ends with a "/".
  • Extend Substring to conform with HBResponseGenerator.
  • Make HBEnvironment Sendable.

v1.0.0 Release Candidate 1

17 Jan 17:16
af1006c
Compare
Choose a tag to compare

Breaking Changes

  • Split HBRouter into two types: HBRouter which processes requests and HBRouterBuilder which is used to build an HBRouter. PR #156
  • The router is now run before any middleware. PR #156
  • XCTExecute can now return values from its closure and throw errors. PR #157

Patch Changes

  • Do deep copy of middleware chain, when creating new HBRouterGroup.

v1.0.0 Alpha 2

07 Dec 14:19
Compare
Choose a tag to compare

Major release changes

  • EventLoopStorage has been removed. The one use case for it has been removed.

Minor release changes

  • Hummingbird now requires Swift 5.5 (inline with SwiftNIO)
  • HBRequest, HBResponse and related types conform to Sendable

Patch release changes

  • Use new NIOAsyncTestingChannel.waitForOutboundWrite in HBXCTAsyncTesting
  • Add new HBHTTPConvertChannel to convert from HTTPServerResponsePart to Sendable type

Other changes

  • Fix integration test compilation

v1.0.0 Alpha 1

17 Nov 12:42
Compare
Choose a tag to compare

Major version changes

  • Add ServiceLifecycleProvider which allows you to pass in a lifecycle to the HBApplication, or create a new one. PR #142 from @slashmo
  • Remove backLog and tcpNoDelay configuration settings when using Network framework
  • Stop exporting so many symbols from dependencies.
  • Move XCTTestingSetup outside of HBApplication

Minor version changes

  • Add new XCT test setup .asyncTest for testing code using Swift Concurrency. PR #144
  • Add HBRequest.CollateBody which can be used in middleware to collate the request body. PR #147
  • Make HBApplication.Persist.driver public

Patch version changes

  • Use NIOLock instead of Lock. PR #143

v0.16.3

27 Sep 07:59
8a117a1
Compare
Choose a tag to compare
  • Support multiple query values with the same key
  • Add Swift Concurrency support for macOS 12.5 and iOS 13