Releases: hummingbird-project/hummingbird
Releases · hummingbird-project/hummingbird
v2.0.0 Beta 7
Breaking changes
- Rename
Request.collateBody
toRequest.collectBody
. PR #468 - Replace
RequestContext
initialization parameters with an assoicatedtypeSource
and collapseRequestContext
andBaseRequestContext
into one protocol. PR #469, #474 - Add
add(middleware:)
as a requirement toRouterMethods
and conformRouter
Minor release changes
- Make
chunkLength
a configurable option in HBFileIO.read functions. PR #471 - Make HTTPUserEventHandler final
Patch release changes
- Don't apply middleware to earlier routes in RouteCollection. PR #466
- Fix Swift.6 error in
Promise
used in tests
Miscellaneous
- Added CODEOWNERS file
v2.0.0 Beta 6
v2.0.0 Beta 5
Breaking changes
- Allow for LogRequestsMiddleware to filter headers logged. PR #433
- Add
services
parameter toApplication.init
. PR #438 - Don't add
@_exported
to Foundation symbols. PR #449 - Add requirement that channel is accessible in
ServerChildChannel.Value
. PR #450 HTTPChannelBuilder
renamedHTTPServerBuilder
and buildsServer
instead ofServerChildChannel
. PR #452Address
renamed back toBindAddress
Minor release changes
- Make
RequestBody.init(asynsSequence:)
public. - Make
LocalFileSystem.init()
public. PR #451 from @alephao - Ensure tracing span records correct duration. PR #435
- Add support for compiling against Musl. PR #446
Patch release changes
- Return 404 when user attempts to load folder from
FileMiddleware
. PR #432 - Include more descriptive error messages when returning errors. PR #431
- Add
content-length
header if we pass in a body to the router test framework - Optimize TrieRouter by using array of structs. PR #443
- Rely on NIO defaults for `maxMessagesPerRead. PR #441
- Minor optimisations, reducing number of allocations. PR #454
v2.0.0 Beta 4
Minor release changes
- Add
public
toRouterMethods.on(_:path:use:)
v2.0.0 Beta 3
Breaking changes
- Remove
ClientConnection
code as this has been moved tohummingbird-websocket
the only place it is used. - Remove
RouteHandler
protocol as this doesn't work with dependency injection. - Remove
Sendable
conformance requirement fromResponseEncoder
,RequestDecoder
protocols. PR #424 - Remove
ServerChildChannel
generic parameter fromApplicationProtocol
. PR #426 - Add optional
port
parameter toTestClientProtocol
Minor release changes
- Fix minimum nio version to use async FileIO. PR #414 from @sidepelican
- Update
content-length
header on setting Response body. PR #425 - Add
RouteCollection
type for passing around groups of routes unattached to aRouter
. PR #421
Patch release changes
- Remove SwiftNIO outbound HTTP header validation as HTTPTypes already does this for us. PR #417
v1.12.2
Patch release changes
- Require hummingbird-core v1.6.1
v2.0.0 Beta 2
Major release changes
- Add
FileProvider
protocol to abstract file loading inFileMiddleware
. Default to loading from the local file system, this could be used to load from S3, or using a cache. #405
Minor release changes
- Make
RequestID
public #407
Patch release changes
- Reinstate "hb_" prefix to logger metadata. #406
- Fix crash in percentDecoding in HBParser. PR #404 from @tannerdsilva
- Add support for running tests on macOS CI without access to the KeyChain. #409
- Fix metrics timers to record length of request once all of the response has been written #412
v1.12.1
Patch release changes
- Ensure we are running on EventLoop after AsyncMiddleware. PR #351
- Replace
LegacyTracer
withTracer
from swift-distributed-tracing now we aren't supporting Swift 5.6. PR #327 - Fix crash in
percentDecoding
inHBParser
. PR #411 from @tannerdsilva
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.