Releases: reactor/reactor-netty
v1.2.3
Reactor Netty
1.2.3
is part of 2024.0.3
Release Train.
What's Changed
⚠️ Update considerations and deprecations
- Make
ChannelOperations.DisposedChannel#close
non operational by @violetagg in #3592 - Ensure
HttpClient
does not addContent-Length
header when the send function does not changeNettyOutbound
or returnsMono#empty
by @violetagg in #3605
✨ New features and improvements
- Depend on
Reactor Core
v3.7.3
by @violetagg in 4e2176e, see release notes - Depend on
Netty
v4.1.118.Final
by @violetagg in #3623 - Use
DnsNameResolverBuilder#datagramChannelFactory
instead of the deprecatedDnsNameResolverBuilder#channelFactory
by @violetagg in #3598 - Support for dynamic proxy configuration at the
HTTP
protocol level by @raccoonback in #3593 - Supports configurable compression level by @raccoonback in #3567
- Add API for specifying datagram channel strategies per
DnsNameResolver
by @violetagg in #3607
🐞 Bug fixes
- When
Mono#empty
is provided as a deferred configuration, continue with the actual configuration by @violetagg in #3596 - When null is provided as a deferred configuration, continue with the current configuration by @violetagg in #3602
- Http2Pool: Ensure the permit is returned when the
Borrower
is cancelled by @violetagg in #3609
Full Changelog: v1.2.2...v1.2.3
v1.1.27
Reactor Netty
1.1.27
is part of 2023.0.15
Release Train.
What's Changed
⚠️ Update considerations and deprecations
- Make
ChannelOperations.DisposedChannel#close
non operational by @violetagg in #3592 - Ensure
HttpClient
does not addContent-Length
header when the send function does not changeNettyOutbound
or returnsMono#empty
by @violetagg in #3605
✨ New features and improvements
- Depend on
Netty
v4.1.118.Final
by @violetagg in #3623 - Use
DnsNameResolverBuilder#datagramChannelFactory
instead of the deprecatedDnsNameResolverBuilder#channelFactory
by @violetagg in #3598
🐞 Bug fixes
- When
Mono#empty
is provided as a deferred configuration, continue with the actual configuration by @violetagg in #3596 - When null is provided as a deferred configuration, continue with the current configuration by @violetagg in #3602
- Http2Pool: Ensure the permit is returned when the
Borrower
is cancelled by @violetagg in #3609
Full Changelog: v1.1.26...v1.1.27
v1.2.2
Reactor Netty
1.2.2
is part of 2024.0.2
Release Train.
What's Changed
⚠️ Update considerations and deprecations
- Do not add
Transfer-Encoding
forDELETE
with no body by @violetagg in #3549 - Ensure
DisposedChannelConfig#setAutoRead
does not change auto-read configuration by @violetagg in #3581
✨ New features and improvements
- Depend on
Reactor Core
v3.7.2
by @chemicL in 3db1d87, see release notes - Depend on
Netty
v4.1.116.Final
by @violetagg in #3550 - Depend on
netty-incubator-transport-native-io_uring
v0.0.26.Final
by @dependabot in #3568 - Depend on
Netty QUIC Codec
v0.0.70.Final
by @violetagg in #3570 Http2Pool
: Do not proceed with the acquisition ifBorrower
is cancelled by @violetagg in #3582Http2Pool
: Do not proceed with the resource delivery ifBorrower
is cancelled by @violetagg in #3585- Configuration for setting maximum number of connection pools to be created by @jchenga in #3566
🐞 Bug fixes
- Fix
ClassCastException
inHttpOperations#initShortId()
by @joschi in #3542 - Ensure the request counter is updated once when the request is received by @violetagg in #3543
HttpServerRequest#receiveContent()
never emits any value nor completes whenHTTP/1.1 TLS Upgrade
(RFC-2817) kicks in by @reta in #3540- Generate log message in advance by @raccoonback in #3571
📖 Documentation
- Add Reactor Netty version of
CORS
HTTP server example by @jchenga in #3554 - Add
HTTP2
/HTTP3
configuration to theHTTP
examples by @violetagg in #3578
New Contributors
- @joschi made their first contribution in #3542
- @raccoonback made their first contribution in #3571
Full Changelog: v1.2.1...v1.2.2
v1.1.26
Reactor Netty
1.1.26
is part of 2023.0.14
Release Train.
What's Changed
⚠️ Update considerations and deprecations
- Do not add
Transfer-Encoding
forDELETE
with no body by @violetagg in #3549 - Ensure
DisposedChannelConfig#setAutoRead
does not change auto-read configuration by @violetagg in #3581
✨ New features and improvements
- Depend on
Netty
v4.1.116.Final
by @violetagg in #3550 - Depend on
netty-incubator-transport-native-io_uring
v0.0.26.Final
by @dependabot in #3568 - Depend on
Netty QUIC Codec
v0.0.70.Final
by @violetagg in #3570 Http2Pool
: Do not proceed with the acquisition ifBorrower
is cancelled by @violetagg in #3582Http2Pool
: Do not proceed with the resource delivery ifBorrower
is cancelled by @violetagg in #3585
🐞 Bug fixes
- Fix
ClassCastException
inHttpOperations#initShortId()
by @joschi in #3542 - Ensure the request counter is updated once when the request is received by @violetagg in #3543
HttpServerRequest#receiveContent()
never emits any value nor completes whenHTTP/1.1 TLS Upgrade
(RFC-2817) kicks in by @reta in #3540- Generate log message in advance by @raccoonback in #3571
New Contributors
- @joschi made their first contribution in #3542
- @raccoonback made their first contribution in #3571
Full Changelog: v1.1.25...v1.1.26
v1.2.1
Reactor Netty
1.2.1
is part of 2024.0.1
Release Train.
What's Changed
✨ New features and improvements
- Depend on
Reactor Core
v3.7.1
by @violetagg in 667f8c9, see release notes - Depend on
Netty
v4.1.115.Final
by @violetagg in #3511 - Use
SslHandler#isEncrypted(ByteBuf, boolean)
instead of the deprecatedSslHandler#isEncrypted(ByteBuf)
by @violetagg in #3523 - Avoid using static exceptions for better debugging experience by @violetagg in #3529
- Handle the incoming
LastHttpContent
with no content as if it isEMPTY_LAST_CONTENT
by @violetagg in #3530
🐞 Bug fixes
- Add timeout for
DefaultLoopResources#disposeLater
by @violetagg in #3514 - Initialise lazy the
ProxyProvider
configuration by @violetagg in #3517 - Ensure all
ConnectionProvider
built-in metrics are disabled when a custom recorder is provided by @violetagg in #3521 - Ensure
HttpClient
sends full request when the send function does not changeNettyOutbound
by @violetagg in #3526 HTTP/3
: EnsureHttpClient
sends full request when the send function does not changeNettyOutbound
by @violetagg in #3536
Full Changelog: v1.2.0...v1.2.1
v1.1.25
Reactor Netty
1.1.25
is part of 2023.0.13
Release Train.
What's Changed
✨ New features and improvements
- Depend on
Netty
v4.1.115.Final
by @violetagg in #3511 - Use
SslHandler#isEncrypted(ByteBuf, boolean)
instead of the deprecatedSslHandler#isEncrypted(ByteBuf)
by @violetagg in #3523 - Handle the incoming
LastHttpContent
with no content as if it isEMPTY_LAST_CONTENT
by @violetagg in #3530
🐞 Bug fixes
- Add timeout for
DefaultLoopResources#disposeLater
by @violetagg in #3514 - Initialise lazy the
ProxyProvider
configuration by @violetagg in #3517 - Ensure all
ConnectionProvider
built-in metrics are disabled when a custom recorder is provided by @violetagg in #3521 - Ensure
HttpClient
sends full request when the send function does not changeNettyOutbound
by @violetagg in #3526
Full Changelog: v1.1.24...v1.1.25
v1.2.0
Reactor Netty
1.2.0
is part of 2024.0.0
Release Train.
New and Noteworthy
HTTP/3
experimental support- Performance improvements
Unix Domain Sockets
support forNIO
transport (requires Java 17)Multi-release
jar support- Reference documentation is migrated to
Antora
What's Changed
⚠️ Update considerations and deprecations
- Remove deprecated
SslProvider$DefaultConfigurationSpec
andSslProvider$DefaultConfigurationType
by @violetagg in #3147 - Deprecate
SslContextSpec#sslContext(reactor.netty.tcp.SslProvider.ProtocolSslContextSpec)
by @violetagg in #3160 - Always add
proxy.address
tag for the client metrics by @violetagg in #3230 - Resolve on demand the path from the request uri by @violetagg in #3359
✨ New features and improvements
- Dependency updates
- Depend on
Reactor Core
v3.7.0
by @chemicL in 9a5a672, see release notes - Depend on
Netty
v4.1.114.Final
by @violetagg in #3451 - Depend on
Netty QUIC Codec
v0.0.68.Final
by @violetagg in #3442 - Depend on
Micrometer
v1.14.0
by @violetagg in #3508 - Depend on
Micrometer Tracing
v1.14.0
by @violetagg in #3508 - Depend on
Micrometer Doc Generator
v1.0.4
by @violetagg in d4ec32e - Depend on
Context Propagation
v1.1.0
by @violetagg in #3164 - Depend on
Brave
v6.0.3
by @dependabot in #3172
- Depend on
HTTP/3
server support- Make
ProtocolSslContextSpec
generic by @violetagg in #3150 - Add
HTTP/3
initial settings by @violetagg in #3152 - Add
HttpProtocol#HTTP3
by @violetagg in #3161 - Initial
HTTP/3
server support by @violetagg in #3176 - Annotate
HTTP/3
server support as incubating by @violetagg in #3183 - Add
wiretap
forHTTP/3
frames by @violetagg in #3186 - Add
accesslog
forHTTP/3
server support by @violetagg in #3191 - Add
compression
forHTTP/3
server support by @violetagg in #3192 - Add
metrics
forHTTP/3
server support by @violetagg in #3193 - Add dependency to
Netty HTTP3 Codec
for aggregated javadoc by @violetagg in #3197 - Add
SNI support
by @violetagg in #3496
- Make
HTTP/3
client support- Add
HTTP/3
client initial settings by @violetagg in #3311 - Add
HttpProtocol#HTTP3
by @violetagg in #3312 - When there is no bind address, configure the default one by @violetagg in #3313
- Add bind support for
DefaultPooledConnectionProvider
by @violetagg in #3314 - Add
Http3Pool
by @violetagg in #3317 - Initial
HTTP/3
client support by @violetagg in #3319 - Add
SNI support
by @violetagg in #3496 - Resolve the remote address by @violetagg in #3507
- Add
- Performance improvements
- Always check
idleTimeout
configuration before pipeline checks by @violetagg in #3117 - Always check
readTimeout
configuration before pipeline checks by @violetagg in #3118 - Cache the request info when collecting metrics by @violetagg in #3211 and #3231
- Immediately mark outbound as complete when sending
Mono
orObject
by @violetagg in #3250 - Add possibility to delay the last flush operation by @violetagg in #3271, #3280 and #3282
- Cache the infomation whether the request is websocket by @violetagg in #3354
- Cache
Content-Length
when it is about to send theFullHttpResponse
by @violetagg in #3355 - Use
doFinally
in order to handlecancel
anderror
signals by @violetagg in #3356 - Initialise
ChannelOperations#shortId
on demand by @violetagg in #3357 - Simplify
HttpServerOperations#onInboundNext
by @violetagg in #3375 - Simplify
HttpTrafficHandler#write
by @violetagg in #3376 - Separate handling for
EMPTY_LAST_CONTENT
by @violetagg in #3385 - Reduce duplication by @violetagg in #3386
- Simplify response status code check by @violetagg in #3390
- Simplify
Http2StreamBridgeServerHandler#write
by @violetagg in #3391
- Always check
- Other improvements
- Add
Unix Domain Sockets
support onNIO
transport by @violetagg in #3494 - Make pending responses log messages consistent by @violetagg in #3239
- Allow using
SocketAddress
proxies instead of justInetSocketAddress
by @AlexProgrammerDE in #3243 - Make
MonoSend.MAX_SIZE
configurable by system property by @VadimKirilchuk in #3276 - Add
Brotli
support forHttpClient
by @violetagg in #3331 HttpDecoderSpec#validateHeaders()
specifies whether request/response headers are validated by @violetagg in #3370- Parse
X-Forwarded-Prefix
request header by @chemicL in #3436 - Support
allowPartialChunks
in theHttpDecoderSpec
by @reta in #3453 - Add
multi-release
jar support by @violetagg in #3494
- Add
🐞 Bug fixes
- Do not add
IdleTimeoutHandler
while processing pipelined requests by @violetagg in #3124 - Always use remote socket address for the metrics by @violetagg in #3210
- Ensure
HttpServerMetricsRecorder#recordServerConnectionInactive/Close
is invoked for websockets by @violetagg in #3229 - Ensure
ConnectionProvider
metrics are disposed unconditionally when graceful shutdown by @violetagg in #3235 - Ensure
ByteBuf#release
is invoked for already sentHTTP/2
response by @violetagg in #3236 - When
HttpOperations#afterMarkSentHeaders
throws an error inHttpOperations#sendObject
, ensure theByteBuf
is released just once by @violetagg in #3246 - Ensure
HttpClient#reactorNettyVersion()
does not throwNullPointException
when loaded through-javaagent
underJDK 1.8
by @KyoUK4n in #3266 - Fix
HTTP/2
poolrecordPendingSuccess/FailureAndLatency
not recorded without timeout by @violetagg in #3252 - Close the connection when decoding exception happens by @violetagg in #3290
Http2Pool
: when applyingacquireTimeout
, check for current pendingBorrowers
by @violetagg in #3300- When an explicit
EventLoopGroup
is configured ensure only one connection pool is created by @violetagg in #3321 - Do not record an exception when the request information is not available by @violetagg in #3352
- Create on demand the response object for
Expect: 100-continue
by @violetagg in #3362 - Always
decode
in an event loop by @violetagg in #3369 - Ensure the buffer is not released twice by @violetagg in #3448
- When terminating detach the connection from request/response objects by @violetagg in #3459
- Ensure body is sent when
DELETE
andTransfer-Encoding
by @violetagg in #3481 - Delay sending the server preface when
SNI
is configured by @violetagg in #3484 - Ensure
HttpInfos#version
returns the correct protocol by @violetagg in #3487
📖 Documentation, Tests
- Clarify maximum websocket frame length configuration by @violetagg in #3116
- Validate zstd compression by @sullis in #3126
- Migrate reference documentation to
Antora
by @pderop in #3120, #3134, #3214, #3215, #3216 and by @violetagg in #3128, #3129, #3130, #3131, #3133, #3135, #3141 - Extend the documentation for the shared (default)
ConnectionProvider
andEvent Loop Group
by @violetagg in #3281 - Polish javadoc for
HttpClient#compress
by @izeye in #3349 - Update sources references in the reference documentation by @violetagg in #3429
- Fix typo in javadoc for
allowPartialChunks
setting by @andrross in #3471
Full Changelog: v1.1.17...v1.2.0
v1.1.24
Reactor Netty
1.1.24
is part of 2023.0.12
Release Train.
What's Changed
🐞 Bug fixes
- When terminating detach the connection from request/response objects by @violetagg in #3459
- Ensure body is sent when
DELETE
andTransfer-Encoding
by @violetagg in #3481 - Delay sending the server preface when
SNI
is configured by @violetagg in #3484 - Ensure
HttpInfos#version
returns the correct protocol by @violetagg in #3487
📖 Documentation
New Contributors
Full Changelog: v1.1.23...v1.1.24
v1.2.0-RC1
Reactor Netty
1.2.0-RC1
is part of 2024.0.0-RC1
Release Train.
Reactor Netty
1.2.0-RC1
inherits all changes from the 1.1.x
branch at the point this release was cut.
What's Changed
✨ New features and improvements
- Depend on
Reactor Core
v3.7.0-RC11
by @violetagg in 36d5c21, see release notes - Depend on
Netty
v4.1.114.Final
by @violetagg in #3451 - Depend on
Netty QUIC Codec
v0.0.68.Final
by @violetagg in #3442 - Depend on
Micrometer
v1.14.0-RC1
by @violetagg in d4ec32e - Depend on
Micrometer Tracing
v1.14.0-RC1
by @violetagg in d4ec32e - Depend on
Micrometer Doc Generator
v1.0.4
by @violetagg in d4ec32e - Parse
X-Forwarded-Prefix
request header by @chemicL in #3436 - Support
allowPartialChunks
in theHttpDecoderSpec
by @reta in #3453
🐞 Bug fixes
- Ensure the buffer is not released twice by @violetagg in #3448
📖 Documentation
- Update sources references in the reference documentation by @violetagg in #3429
New Contributors
Full Changelog: v1.2.0-M5...v1.2.0-RC1
v1.1.23
Reactor Netty
1.1.23
is part of 2023.0.11
Release Train.
What's Changed
✨ New features and improvements
- Depend on
Netty
v4.1.114.Final
by @violetagg in #3451 - Depend on
Netty QUIC Codec
v0.0.68.Final
by @violetagg in #3442 - Parse
X-Forwarded-Prefix
request header by @chemicL in #3436 - Support
allowPartialChunks
in theHttpDecoderSpec
by @reta in #3453
🐞 Bug fixes
- Ensure the buffer is not released twice by @violetagg in #3448
📖 Documentation
- Update sources references in the reference documentation by @violetagg in #3429
New Contributors
Full Changelog: v1.1.22...v1.1.23