Releases: hummingbird-project/hummingbird
Releases · hummingbird-project/hummingbird
v0.13.0 (Async/Await)
Breaking changes
HBRequest
andHBResponse
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 viaHBRequest.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 ofHBRouteHandler
- 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
withNIOCore
orNIOPosix
where applicable.
v0.12.1
- XCT test framework now binds test server to port 0
- Conform
HBParameters
toCollection
v0.12.0
- Update to v0.11.0 of hummingbird-core
v0.11.4
- Minor optimization: Remove one unnecessary
EventLoopFuture.map
for routes that return anEventLoopFuture
- Minor optimization: Metrics middleware uses
whenComplete
instead offlatMap
/map
v0.11.3
- Use
HBXCTClient
from HummingbirdCoreXCT for testing instead of AsyncHTTPClient - Fix memory leaks associated with
HBDateCache
andHBXCTLive
v0.11.2
HBRequest.Persist.create
throws an error if the key already exists.- XCT calls run on
EmbeddedEventLoop
to ensure allsubmit
andexecute
calls are run HBRequest
logger stores id as.stringConvertible
instead of.string
- Setup up a performance executable for testing framework performance
v0.11.1
- 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 ofNWProtocolTLS.Options?
v0.11.0
- 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 currentEventLoop
,ByteBufferAllocator
andremoteAddress
instead of copying these values intoHBRequest
. PR #75 - Allow
HBApplication.start()
to throw errors. PR #73
v0.10.0
- Added
persist
framework for storing key/value pairs across requests - Can replace headers set in
HBResponseGenerator
usingrequest.header.replaceOrAdd
. Previously this would output both headers - Added
HBRequest.remoteAddress
v0.9.0
- Using
hummingbird-core
v0.8.0 - Add
HBRouterMethods.group
to create a newHBRouterGroup
off current setup of methods. - Add
HBRouterHandler
type for encapsulating everything a route needs along with itshandle
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