Skip to content

Releases: reactor/reactor-netty

v0.8.13.RELEASE

28 Oct 14:54
Compare
Choose a tag to compare

This is the 14th release of Reactor Netty 0.8, part of Californium-SR13 Release Train.

This is a recommended update for all Reactor Netty 0.8.x users.

✨ New features and improvements

🪲 Bug fixes

  • HTTP/2
    • Ensure channel.parent() is used when retrieving the remote address (#864)
    • Remove HttpToH2Operations in favour of Http2StreamFrameToHttpObjectCodec (#865, #874)
    • Let Http2StreamFrameToHttpObjectCodec encode/decode Http2Stream (#863, #878)
  • Use channelHandlerContext.writeAndFlush instead of channel.writeAndFlush when appropriate (#331)
  • Add logging when websocket outbound error happened (155ff95)
  • Handle decoding failures with LastHttpContent (#875)
  • HttpPredicate$UriPathTemplate can cause OOM (#866, #873)
  • Clean up the warnings reported by errorprone (#862, b83cc97, c27f772)

👍 Thanks to the following contributors that also participated to this release

@Liyixin95, @AntonGabov

v0.9.0.RELEASE

25 Sep 16:42
Compare
Choose a tag to compare

Reactor Netty 0.9.0.RELEASE is part of Dysprosium-RELEASE Release Train.

See also release notes from 0.8.6, 0.8.7, 0.8.8, 0.8.9, 0.8.10, 0.8.11 and 0.8.12 for changes that were inherited from the 0.8.x maintenance release.

🚀 We worked hard to optimize data sending from both client and server side. In HTTP scenarios, we observed up to 40% response time improvement. As a bonus, we have been able to backport this work in 0.8 latest patches as well.

✨ New features and improvements

  • Depending on Reactor Core v3.3.0.RELEASE, see release notes (e3ef68c)
    • Update Reactive Streams version to 1.0.3 (ab56fab)
    • Adapt to Mono.using changes (#835)
  • Depending on Netty v.4.1.39.Final (46974c0)
  • 🌟 Metrics
    • TCP/HTTP Metrics (#157, #721, #790, e7f9378, f202f7a)
    • UDP metrics (#830, #831)
    • Connection pool metrics (#797, #832)
    • ByteBufAllocator metrics (#797, #854)
    • AddressResolver metrics (#797, #856)
    • Add maximum allowable URI tags for HttpServer/HttpClient metrics (#794, #857)
    • Add TCP/UDP client/server #metrics(boolean, ChannelMetricsRecorder) (#798, #859)
    • Add HttpServer#metrics(boolean, HttpServerMetricsRecorder) (#798, #859)
    • Add HttpClient#metrics(boolean, HttpClientMetricsRecorder) (#798, #859)
  • 🌟 Connection Pool
    • Switch from Netty Connection Pool to Reactor Pool (#717, #723)
    • Shade Reactor Pool (#723)
    • ⚠️ Switch to fixed connection pool by default for TCP/HTTP client (#578, #796, #812)
    • API for configuring pooled connection idle time (#612, #792)
    • Adapt to the new Reactor Pool API for min/max connections (173e08a)
    • Enable ColocatedEventLoopGroup for the client (#806)
    • Parallelise pool disposing (65dc586)
    • Remove pool subscribeOn use since we now use asynchronous close (#846)
  • 🌟 Add BlockHound integration (a984c19, a5da0df, 8513dea, 675d8aa, 43fc5bb)
  • Add NettyOutbound.send/sendObject API with a predicate for enforcing flush operation (#769, 7f9e328, 0325828)
  • Add WebsocketInbound#receiveCloseStatus for receiving the close status information (#533, #815)
  • Declare an Java9 JPMS Automatic-Module-Name for Reactor Netty (#731)
  • Extend EventLoop from Netty's FastThreadLocalThread (#745)
  • Use publisherOrScalarMap in ByteBufFlux (97df685)
  • MonoSendMany: Resolve context once on cleanup (9c5baf4)
  • Do not create aggregated ByteBuf when the publisher is empty or the first element is empty (#574)
  • Remove the usage of the deprecated Http2MultiplexCodecBuilder (#822)
  • Use single-quotes char in lastIndexOf (#852)
  • Removal of deprecations
    • Remove the deprecated wiretap() in favour wiretap(boolean) (#480, 55c4804)
    • Remove the deprecated TcpClient(Server)#secure(SslContext) (#481, a49beda)
    • Remove the deprecated HttpClient#chunkedTransfer (#553, #620, 34e644c)
    • Remove the deprecated FutureMono.deferFutureWithContext/disposableWriteAndFlush methods (15a4933)
    • Remove the deprecated NettyPipeline.SendOptions (#766, #767, 3e0acd9)
    • Remove the deprecated HttpServer#proxyProtocol(boolean) (d98e8bb)

📖 Documentation, Tests and Build

  • 🌟 Reference documentation and examples. (#155, #627, #635, #642)
  • Specify fire-and-forget #dispose() behaviour for LoopResources, ConnectionProvider (#850, #851)
  • Specify fire-and-forget #disposeLoopsAndConnections() behaviour for TcpResources, HttpResources (#850, #851)
  • Specify fire-and-forget #shutdown() behaviour for UdpResources (#850, #851)
  • Documentation fix for error: neither SslContextBuilder nor SslContext is specified (#787)
  • If a handler is added with Connection.addHandler*, events prior channel active state are not available (#783, 6a98e38)

👍 Thanks to the following contributors that also participated to this release

@Buzzardo @Liyixin95 @IsmailMarmoush @OlegDokuka

v0.8.12.RELEASE

24 Sep 19:05
Compare
Choose a tag to compare

This is the 13th release of Reactor Netty 0.8, part of Californium-SR12 Release Train.

This is a recommended update for all Reactor Netty 0.8.x users.

✨ New features and improvements

  • Proxy protocol support
    • Add proxy protocol auto detect feature (#855)
    • Deprecated HttpServer#proxyProtocol(boolean) (#855)
    • Cache remoteAddress in HttpTrafficHandler/Http2StreamBridgeHandler (#853)
    • HAProxyMessage should be released to avoid memory leak (#853)

🪲 Bug fixes

  • HttpClient fails with SSL after redirect (#843, #845)
  • Detect whether secure or not when the first http request comes in order to support SniHandler added by the user (#841)
  • Avoid calling Pool#close() which will block reactor thread (#848)
  • Avoid redundant regex compile (#858)

👍 Thanks to the following contributors that also participated to this release

@aftersss, @Liyixin95

v0.9.0.RC1

04 Sep 06:44
Compare
Choose a tag to compare
v0.9.0.RC1 Pre-release
Pre-release

This is the 1st release candidate of Reactor Netty 0.9, part of Dysprosium-RC1 Release Train.

This release candidate includes all features, improvements and fixes from v0.8.11.RELEASE

✨ New features and improvements

  • Depending on Reactor Core v3.3.0.RC1, see release notes (87d792a)
    • Adapt to Mono.using changes (#835)
    • Update Reactive Streams (ab56fab)
  • Adapt to the new Reactor Pool API for min/max connections (173e08a)
  • Enable ColocatedEventLoopGroup for the client (#806)
  • Switch fixed connection pool by default for TCP/HTTP client (#578, #796, #812)
  • Remove the usage of the deprecated Http2MultiplexCodecBuilder (#822)
  • Add WebsocketInbound#receiveCloseStatus for receiving the close status information (#533, #815)

👍 Thanks to the following contributors that also participated to this release

@OlegDokuka

v0.8.11.RELEASE

04 Sep 05:13
Compare
Choose a tag to compare

This is the 12th release of Reactor Netty 0.8, part of Californium-SR11 Release Train.

This is a recommended update for all Reactor Netty 0.8.x users.

✨ New features and improvements

  • Depending on Reactor Core v3.2.12.RELEASE, see release notes (98443cb)
  • Depending on Netty 4.1.39.Final (#793, db90c6d)
  • Deprecate FutureMono#deferFutureWithContext (#799)
  • Do not force NIO transport if JdkSslContext detected (#803, 9a74a01)

🪲 Bug fixes

  • PrematureCloseException should not be used as a singleton (#802, 4d65dc3)
  • Ensure there is no proxy LoggingHandler when wiretap is off (#804, #805)
  • Safely call removeListener on MonoSendMany terminal signal (#807, #808)
  • Abort the send operation if the channel is not active (#821, #823)
  • When invoking SendManyInner#unvoid, propagate the success/failure from the new promise to SendManyInner (#820, #824)
  • Close the connection: (#825, #826)
    • when the compression predicate throws RuntimeException
    • when the follow redirect predicate throws RuntimeException
    • when ByteBuf#release fails in FluxReceive#drainReceiver

📖 Documentation, Tests and Build

  • Do not run docsZip/asciidoc with install on local builds (60a5fc0)
  • Fix javadoc of HttpClient#followRedirect (#816, #817)

👍 Thanks to the following contributors that also participated to this release

@nictas

v0.9.0.M3

30 Jul 12:12
Compare
Choose a tag to compare
v0.9.0.M3 Pre-release
Pre-release

This is the 3st milestone of Reactor Netty 0.9, part of Dysprosium-M3 Release Train.

This milestone includes all features, improvements and fixes from v0.8.10.RELEASE

✨ New features and improvements

  • Remove deprecated NettyPipeline.SendOptions. (#766, #767, 3e0acd9)
  • Add NettyOutbound.send/sendObject API with a predicate for enforcing flush operation. (#769, 7f9e328, 0325828)
  • Use publisherOrScalarMap in ByteBufFlux. (97df685)
  • Remove deprecated FutureMono.deferFutureWithContext/disposableWriteAndFlush methods. (15a4933)
  • Switch from Netty Connection Pool to Reactor Pool (#717, #723)
  • API for configuring pooled connection idle time. (#612, #792)
  • Add TCP/HTTP Metrics. (#157, #721, #790, e7f9378, f202f7a)

📖 Documentation, Tests and Build

  • Documentation fix for error: "neither SslContextBuilder nor SslContext is specified". (#787)
  • If a handler is added with Connection.addHandler*, events prior channel active state are not available. (#783, 6a98e38)

👍 Thanks to the following contributors that also participated to this release

@IsmailMarmoush

v0.8.10.RELEASE

30 Jul 11:43
Compare
Choose a tag to compare

This is the 11th release of Reactor Netty 0.8, part of Californium-SR10 Release Train.

This is a recommended update for all Reactor Netty 0.8.x users.

✨ New features and improvements

  • Deprecate NettyOutbound.options and NettyPipeline.SendOptions. (#791)

🪲 Bug fixes

  • Extend EventLoop from Netty's FastThreadLocalThread. (#765)
  • Use the correct address when cannot extract the port from forwarded headers. (#625, #770)
  • Remove the Bootstrap option/attribute only if it exists. (cbc1113)
  • Do not remove the reactive bridge in case of a close frame. (#768, #776)
  • Clean resources of long living connections to reduce gc pressure. (#775, e2a234d)
  • Fixed file leak in ByteBufFlux.fromPath. (#784, 6192fd5)
  • Defer close subscription cancellation for HTTP server. (#741, a79f8d7, 30d663d)

📖 Documentation, Tests and Build

  • ByteBufMono.asInputStream add to javadoc the memory release requirements. (#771)

👍 Thanks to the following contributors that also participated to this release

@bsideup, @aftersss

v0.9.0.M2

10 Jun 21:44
Compare
Choose a tag to compare
v0.9.0.M2 Pre-release
Pre-release

This is the 2st milestone of Reactor Netty 0.9, part of Dysprosium-M2 Release Train.

This milestone includes all features, improvements and fixes from v0.8.9.RELEASE

✨ New features and improvements

v0.8.9.RELEASE

10 Jun 21:44
Compare
Choose a tag to compare

This is the 10th release of Reactor Netty 0.8, part of Californium-SR9 Release Train.

This is a recommended update for all Reactor Netty 0.8.x users.

✨ New features and improvements

🪲 Bug fixes

  • Avoid pipeline lookup for each ConnectionInfo and MonoSendMany (a89231d)
  • Return a new promise on MonoSendMany#unvoid (#736, #751)
  • Switch to ChannelOption.valueOf instead of ChannelOption.newInstance (abd706e)
  • Clean the receiver on terminal signal (331e784)
  • Unvoid promise since MonoSend doesn't directly allow for listeners (ad7e545)
  • Check queue if premature cancel (could be null) (d7267e1)
  • Fix unintended stack trace suppression despite DEBUG level being enabled (#755)
  • Dispose the PooledConnectionProvider in a separate thread (#758)
  • MonoSendMany#unvoid needs to be linked back to MonoSend promise (#749)
  • Use the default port when cannot extract the port from forwarded headers (#759, 1a84c91)
  • Filter out unused h2 frames (#744)
  • Revert "Use an adaptation of Spring Framework UriTemplate for resolving path params" (#754)

👍 Thanks to the following contributors that also participated to this release

@ginkel, @dave-fl, Spring community (gateway, framework) and the many realtime reports from our Gitter channel !

v0.9.0.M1

10 May 14:03
Compare
Choose a tag to compare
v0.9.0.M1 Pre-release
Pre-release

This is the 1st milestone of Reactor Netty 0.9, part of Dysprosium-M1 Release Train.

This milestone includes all features, improvements and fixes from v0.8.6.RELEASE, v0.8.7.RELEASE and v0.8.8.RELEASE

✨ New features and improvements

  • Depending on Reactor Core v3.3.0.M1, see release notes (5d8ab7a)
  • Remove the deprecated wiretap() in favour wiretap(boolean). (#480, 55c4804)
  • Remove the deprecated TcpClient(Server)#secure(SslContext). (#481, a49beda)
  • Remove the deprecated HttpClient#chunkedTransfer. (#553, #620, 34e644c)
  • Do not create aggregated ByteBuf when the publisher is empty or the first element is empty. (#574)
  • Declare an Java9 JPMS Automatic-Module-Name for Reactor Netty. (#731)

📖 Documentation, Tests and Build

👍 Thanks to the following contributors that also participated to this release

@Buzzardo