Releases: hummingbird-project/hummingbird
Releases · hummingbird-project/hummingbird
v2.0.0 Beta 1
This is the first beta release of Hummingbird v2. Below is a list of the changes since the last alpha
Major release changes
- The "HB" prefix on symbols has been removed. To help transition from previous symbols with the "HB" prefix we have added deprecated typealiases for the old symbols. eg
typealias HBRequest = Request
. These will be removed in the final release. - At the same time we have renamed
HBMiddlewareProtocol
toRouterMiddleware
.HBChildChannel
toServerChildChannel
HBResponder
toHTTPResponder
HBURL
toURI
Client
toClientConnection
- HummingbirdXCT test framework has been renamed to
HummingbirdTesting
with symbol changesHBXCTClientProtocol
toTestClientProtocol
HBXCTClientProtocol.XCTExecute()
toHBXCTClientProtocol.execute()
- HummingbirdJobs has been reworked to allow for easier referencing of services from inside job execution code. Check https://hummingbird-project.github.io/hummingbird-docs/2.0/documentation/hummingbirdjobs for details.
GracefulShutdownWaiter
has been removed. Usetry await gracefulShutdown()
from ServiceLifecycle instead.HBParser
scope is nowpackage
Other changes
- 2.0 code has now been merged into
main
branch.
v2.0.0 Alpha 3
Breaking changes
- Removed
HBRequestContext.init(allocator:logger:)
as a protocol requirement, removed default implementation ofHBRequestContext.init(channel:logger:)
requirement. - JobQueue protocol has associated type
JobID
for identifying a job. - Removed
GracefulShutdownWaiter
. Instead usetry await gracefulShutdown()
which is already provided by ServiceLifecycle.
Minor release changes
- Added
HBParameter.get/require
function for types that conform toRawRepresentable
. - Added
HBRouterOptions
. Options includecaseInsensitive
: Route path matching is case insensitiveautoGenerateHeadEndpoints
: Automatically generate HEAD endpoints for all GET endpoints.
- Add primary associated type for
HBRouterMethods
. Thanks to @sidepelican
Patch release changes
- Fixed HTTP2 channel cleanup
- Replaced atomic in
HTTPChannelHandler.handleHTTP
with value wrapped inNIOLockedValueBox
- Tag retroactive protocol conformances.
v2.0.0 Alpha 2
Breaking changes
HBRequestBody
has been converted from anenum
to astruct
.HBBindAddress
renamed toHBAddress
and has been converted from anenum
to astruct
.HBHTTPChannelBuilder.http2
renamed toHBHTTPChannelBuilder.http2Upgrade
.HBServerConfiguration
is no longer passed toHBChildChannel.setup
.- Removed
HBRouterMethodOptions
as they are no longer needed. - Removed
loggerWithRequestId
global function. - Removed
HBApplicationConfiguration.noHTTPServer
as we don't use it. HBServer.makeServer
is no longer public..env
file loading is now async.
Minor release changes
- Added
HBRequestBody.makeStream
to construct a new back pressured stream of buffers for a request body. - Added generalized client type to setup client connection without defining the protocol being used (being used by WebSocket client).
HBApplicationConfiguration
members are allvar
instead oflet
.
Patch release changes
- Fix issue with
HBApplication.runBeforeServerStart
and testing using.router
framework. - Set StrictConcurrency=complete and fixed related warnings
Other changes
- Updated README for v2.
Full Changelog: 2.0.0-alpha.1...2.0.0-alpha.2
v2.0.0 Alpha 1
This is the first alpha release of Hummingbird v2. Below is a list of the major changes
- Complete rewrite of internals to be Swift structured concurrency based instead of NIO EventLoop
- All EventLoopFuture based APIs have been removed
- Integration with v2 of Swift Service Lifecycle.
- Removed ability to extend
HBApplication
andHBRequest
. These are replaced with direct dependency injection and a generic request context which is passed along with the request in route handlers and middleware. - In addition to the trie based router we have a new result builder based router.
- Uses new HTTPTypes from Apple.
- HummingbirdCore module is now in the same repository as Hummingbird
- Merged HummingbirdFoundation into Hummingbird
- Rewrite of Jobs system to use structured concurrency.
API Documentation can be found here and more details about differences between Hummingbird v1 and v2 can be found in the migration guide
Alongside the Hummingbird v2 alpha release, there will be alpha releases of HummingbirdAuth, HummingbirdRedis and HummingbirdFluent. WebSocket and Compression are not ready for release yet and will come later.
v.1.12.0
Minor release changes
- Add
RequestID
to generate unique ids for each request. The request id is no longer just an incrementing counter. It now includes an extra random element to identify the hummingbird process generating the request. It is also output as hex instead of decimal. PR #326
Other changes
- Removed unused documentation. Documentation is generated from https://github.com/hummingbird-project/hummingbird-docs.
- Documentation link now includes hummingbird version, in preparation for future major releases.
- Set documentation visibility to internal for
@_exported
symbols from other libraries.
v1.11.0
Minor release changes
- Make
HBMethods.constructResponder
public. PR #316
Other changes
- Update CONTRIBUTORS.md
- Fix small code mistake in Encoding and Decoding.md. PR #304 from @sidepelican
1.10.1
Patch release changes
- Return correct content-type for
index.html
file. PR #299 from @sidepelican
v1.10.0
Minor release changes
- Change scope of
HBXCTResponse.init
andHBXCTError
to public
v1.9.1
Patch release changes
- Remove global
ISO8601DateFormatter
used in URLEncodedForm encoder/decoder as it is not thread safe on Linux.
v1.9.0
Minor release changes
- Minimum supported version of Swift is 5.7. PR #242
- Add own version of EventLoopGroupProvider which only includes
shared
orsingleton
. DeprecateHBApplication.init
that uses swift-nio version. PR #241 - Added
HBApplication.run
which calls bothstart
andwait
PR #243 - Added
HBApplication.asyncWait
andHBApplication.asyncRun
that can be called from an asynchronous context. PR #243