Skip to content

v1.3.0

Latest

Choose a tag to compare

@violetagg violetagg released this 07 Nov 22:54
· 12 commits to main since this release
586257f

Reactor Netty 1.3.0 is part of 2025.0.0 Release Train.

1.3.0 Highlights

🎯 Major Upgrades

Netty 4.2

Built on the latest Netty 4.2, bringing the latest networking capabilities and performance improvements.

🎓 Graduated Features

HTTP/3 support

Reactor Netty HTTP/3 support is now production-ready.

QUIC support

Reactor Netty QUIC support is now production-ready.

IO_Uring support

Reactor Netty IO_Uring support is now production-ready.

  • Reactor Netty default transport (Linux): Epoll (included out-of-the-box)
  • Reactor Netty IO_Uring support: Available via explicit dependency: io.netty:netty-transport-native-io_uring
  • Requirements: JDK 11+

🔍 Enhanced Null Safety using JSpecify

Migrated to JSpecify annotations for nullability constraints.

For detailed information and code examples, visit our documentation.

What's Changed

⚠️ Update considerations and deprecations

  • Ensure POST empty body sending content-length 0 by @violetagg in #3663
  • Ensure HttpClient does not add Content-Length header when GET/HEAD/DELETE and the send Publisher does not provide content by @violetagg in #3664

✨ New features and improvements

🐞 Bug fixes

  • Fix various issues with Nullable annotation by @violetagg in #3626, #3628, #3629, #3646
  • Fix NullPointerException in Http2SettingsSpec#hashCode by @violetagg in #3639
  • Fix Http2ConnectionProvider#logStreamsState to log active/max streams per connection and per all connections by @violetagg in #3650
  • Ensure the HTTP/2 stream is closed when an error happens before send operation by @violetagg in #3675
  • Ensure the HTTP/3 stream is closed when an error happens before send operation by @violetagg in #3677
  • Ensure the connection is invalidated when an error happens before h2c upgrade operation by @violetagg in #3678
  • Ensure HttpInfos#version returns the correct protocol when Unix Domain Sockets by @violetagg in #3693
  • Ensure reactor.netty.http.server.connections.active is updated when there is no HttpServerOperations by @violetagg in #3725
  • Ensure the default compression configuration is taken from Netty by @violetagg in #3743
  • Ensure the exception is propagated in case of delayed address resolution by @violetagg in #3744
  • Release the partial HttpData only if it is not released by Netty by @violetagg in #3749
  • Connection pools with/without resolvedAddressesSelector are different pools by @violetagg in #3753
  • Remove extra write invocation when Expect: 100-continue by @violetagg in #3755
  • Ensure the connection is invalidated when a connection close happens before HTTP/1.1 to HTTP/2 upgrade operation by @violetagg in #3806
  • When HTTP/2 apply always the trailer headers by @violetagg in #3808
  • Trailers must not include pseudo-header fields by @violetagg in #3810
  • Add the HTTP/2 connection to the channel group for a proper graceful shutdown in case no active streams by @violetagg in #3827
  • Add proper initialisation of maxConcurrentStreams when successful HTTP/1.1 to HTTP/2 upgrade by @violetagg in #3832
  • Ensure the HTTP/2 upgrade stream inherits the proper state from the original HTTP/1.1 connection when successful upgrade from HTTP/1.1 to HTTP/2 by @violetagg in #3838
  • When HTTP/2, ensure the trailer headers are provided in case full response is received by @violetagg in #3847
  • Ensure HttpClientResponse#trailerHeaders always completes by @violetagg in #3848
  • Fix message for handlerConfigurator by @klopfdreh in #3861
  • Ensure both resolved and unresolved server bind addresses are used with ConnectionProvider#disposeWhen by @violetagg in #3881
  • Ensure 100-Continue is handled when collecting client's metrics by @violetagg in #3895
  • Ensure cookie validation errors are propagated by @violetagg in #3898
  • Ensure ResponseTimeoutHandler is added as one of the first handlers in the pipeline by @violetagg in #3916
  • Add missing check for null by @violetagg in #3932
  • Do not try to send the file when Content-Length:0 by @violetagg in #3936
  • Ensure the HTTP/2 upgrade stream inherits the proper state from the original HTTP/1.1 connection when successful upgrade from HTTP/1.1 to HTTP/2 by @violetagg in #3957
  • Fix HttpClientConfig copying issue in MonoHttpConnect by @violetagg in #3964

📖 Documentation

New Contributors

Full Changelog from M1 version to GA version: v1.2.3...v1.3.0