Skip to content

Releases: hummingbird-project/hummingbird

v0.13.0 (Async/Await)

21 Sep 09:15
Compare
Choose a tag to compare

Breaking changes

  • HBRequest and HBResponse have been changed from classes to structs. This is in a bid to reduce race conditions during async calls. This will impact any code where you are mutating either of these, but should make it clearer where edits are being made.
  • bodyCollation parameter in route handler functions has been changed into a set of options which include .streamBody.
  • Added option .editResponse which indicates you are going to edit a route response via HBRequest.response. Not setting this will cause a crash.

Minor release changes

  • Added support for async/await in Swift 5.5
    • Added async route handlers
    • Added HBAsyncMiddleware protocol
    • Added HBAsyncRouteHandler for async versions of HBRouteHandler
    • Added async versions of persist framework functions.
  • Added HBApplication.Configuration.with() to generate new configuration with edited change.
  • XCT test framework binds to port zero by default.

Patch release changes

  • Add more informative messaging for when an extension doesn’t exist.
  • HBRequest.cookies returns a temporary object instead of caching the cookies in an ‘HBRequest` extension.
  • Replace import NIO with NIOCore or NIOPosix where applicable.

v0.12.1

24 Aug 11:26
Compare
Choose a tag to compare
  • XCT test framework now binds test server to port 0
  • Conform HBParameters to Collection

v0.12.0

24 Jun 07:55
Compare
Choose a tag to compare
  • Update to v0.11.0 of hummingbird-core

v0.11.4

07 Jun 09:39
a0ddadd
Compare
Choose a tag to compare
  • Minor optimization: Remove one unnecessary EventLoopFuture.map for routes that return an EventLoopFuture
  • Minor optimization: Metrics middleware uses whenComplete instead of flatMap/map

v0.11.3

21 May 09:14
960603b
Compare
Choose a tag to compare
  • Use HBXCTClient from HummingbirdCoreXCT for testing instead of AsyncHTTPClient
  • Fix memory leaks associated with HBDateCache and HBXCTLive

v0.11.2

18 May 11:16
fb97a42
Compare
Choose a tag to compare
  • HBRequest.Persist.create throws an error if the key already exists.
  • XCT calls run on EmbeddedEventLoop to ensure all submit and execute calls are run
  • HBRequest logger stores id as .stringConvertible instead of .string
  • Setup up a performance executable for testing framework performance

v0.11.1

07 May 09:18
Compare
Choose a tag to compare
  • HBXCTLive shutdowns down the AyncHTTPClient if server start fails to allow the correct error to be reported
  • HBApplication.Configuration is now initialized with a TSTLSOptions instead of NWProtocolTLS.Options?

v0.11.0

26 Apr 10:14
Compare
Choose a tag to compare
  • Add support for iOS. Networking for iOS builds is implemented through NIO Transport Services. TLS should be setup using HBApplication.Configuration.tlsOptions when using NIO Transport Services. PR #71
  • Add context object to supply HBRequest with current EventLoop, ByteBufferAllocator and remoteAddress instead of copying these values into HBRequest. PR #75
  • Allow HBApplication.start() to throw errors. PR #73

v0.10.0

16 Apr 10:38
c90715c
Compare
Choose a tag to compare
  • Added persist framework for storing key/value pairs across requests
  • Can replace headers set in HBResponseGenerator using request.header.replaceOrAdd. Previously this would output both headers
  • Added HBRequest.remoteAddress

v0.9.0

07 Apr 10:22
07325fb
Compare
Choose a tag to compare
  • Using hummingbird-core v0.8.0
  • Add HBRouterMethods.group to create a new HBRouterGroup off current setup of methods.
  • Add HBRouterHandler type for encapsulating everything a route needs along with its handle function.
  • Add HBParameters.require that throws an error if parameter does not exist.
  • Create HBRequest.parameters object if it doesn't already exist
  • Add HBEnvironment.shared for global access to environment variables
  • Fix parsing of multiple cookies, previously only the first cookie was parsed