Skip to content

Releases: reactor/reactor-netty

v0.6.6.RELEASE

16 Oct 21:13
Compare
Choose a tag to compare

This is the 6th release of Reactor Netty 0.6.

This is a maintenance update for all 0.6 Reactor Netty users. This release rollback netty version used to 4.1.13.Final until netty/netty#7309 unbounded SSL issue is fixed.

✨ New features and improvements

  • Expose NettyOutbound#sendFileChunked API and fallback to this operator when sendFile is used with ssl enabled (backport from 0.7).
  • emit error on premature http close (#138)
  • lazily create loop/pool resources if there's no custom ones set by user

🪲 Bug fixes

  • Fully consume http server or client error (50x, 40x) or redirect (301 and 302)
  • Close channel on cancel
  • Check http response keepAlive status for releasing
  • Close before release to pool
  • Safe ByteBuf release in fromPath

v0.7.0.RELEASE

27 Sep 08:16
Compare
Choose a tag to compare

This is the first release of Reactor Netty 0.7, part of Bismuth-RELEASE Release Train.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

⚠️ Update considerations and deprecations

  • Depending on Reactor Core v3.1.0.RELEASE (see release notes for API changes)
  • Depending on Netty v4.1.15

✨ New features and improvements

  • Options and configuration have been reworked
    • TCP/HTTP Client and Server expose a copy of the options for information purposes (#66)
    • The proxy can be configured to let some hosts bypass it (#125)
    • Add NettyContext config callback, rework Channel config options (#80)
    • Introduce a step builder for ClientProxyOptions (#139)
    • Expose API for configuring SslHandler's closeNotifyFlushTimeoutMillis and closeNotifyReadTimeoutMillis (b463fc1)
    • Use the Builder pattern to configure Client/Server and their Options (#120)
  • Shutdown and cleanup improvements
    • Global TcpResources can now be shutdown (#24)
    • One can now listen for completion of the LoopResource/PoolResources disposal (#25)
  • There is now a simple blocking alternative API for client/server that simply need to run from a main (#61, #144, #161)
  • Default configuration changes
    • The HttpServer now listens on port 8080 by default (#145)
    • The default connection pool is switched to elastic by default (e97084d)
    • Do not specify SO_LINGER timeout, JVM default will be used (59beb9d)
  • Allow to send files through SSL, expose chunked alternative (#102)

🪲 Bug fixes

  • Take HttpServerOptions#compression(int) threshold into account (#106)
  • Make HttpClient SSL work on relative GET (#109)
  • Update pendingResponses in the event for termination (#89)
  • Propagate clientError/serverError configurations when HttpClientRequest#sendWebsocket is used (#113)
  • Correctly use base hostname in HttpClientOptions even if proxy is configured (#126)
  • Ensure accept gzip is applied when there is no handler provided (#131)
  • Resolve the proxy host and port (#140)
  • Make sendFile work with ZipFileSystem, use FileChannel (#146)
  • Correct handling of pending writes while in parallel completing to send the outbound data. (#134)
  • Dispose ContextHandler when receive callback signal for cancel (#119)
  • Emit error signal when the connection is closed prematurely (#138)
  • Close before release to avoid acquiring closed connection (723718a)
  • Don't send chunked transfer for DELETE requests (d44250c)
  • Create LoopResources/PoolResources only in case the user does not specify their own (336a4c1)
  • Minor polishes and fixed starving client by http server (cc13744)
  • Response codes 204/205/304 should specify content-length:0 (1f80ca0)

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

@nebhale, @bclozel

v0.6.5.RELEASE

29 Aug 17:57
Compare
Choose a tag to compare

This is the 5th release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

✨ New features and improvements

  • Expose API for configuring SslHandler's closeNotifyFlushTimeoutMillis and closeNotifyReadTimeoutMillis. (b463fc1)
  • Netty is updated to version 4.1.15.Final (cee1eb0)

🪲 Bug fixes

  • Propagate clientError/serverError configurations when HttpClientRequest#sendWebsocket is used. (#113)
  • Correct handling of pending writes while in parallel completing to send the outbound data. (#134)

v0.6.4.RELEASE

06 Jun 22:37
Compare
Choose a tag to compare

This is the 4th release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

v0.6.3.RELEASE

06 Jun 22:35
Compare
Choose a tag to compare

This is the 3rd release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

⚠️ Update considerations

  • Cancelling/disposing an HttpClientResponse will now close prematurely the connection since there is no deterministic way to release it if it was persistent (default). See #57.
  • Immediate failure to write onto a newly acquired persistent connection by HttpClient will result in automatic close/re-acquire.
  • Reactor Netty does now depend on the exploded netty dependencies instead of netty-all for better transitive control, see #28.

✨ New features and improvements

  • HttpClient now closes on cancel/dispose #57
  • HttpClient will now present a 'user-agent' by default (#55)
  • HttpClient auto-retries immediately stale connection (96daef2)
  • Safely release bytebuf when exceptions are raised up to ChannelOperationHandler (#51)

🪲 Bug fixes

  • WebsocketInbound#aggregateFrames() is now properly working (#52)
  • Decorate binary message with websocket frames #54
  • Proxy resolution now lazily resolve unresolved address #53

👍 Thanks @nebhale @rstoyanchev for the reactive feedbacks

v0.6.2.RELEASE

10 Mar 12:24
Compare
Choose a tag to compare

This is the 3nd release of Reactor Netty 0.6.

This is a recommended update for all Reactor Netty users which fixes a few blockers and some user experience issues.

⚠️ Update considerations

  • Cancelling/disposing an HttpClientResponse will now close prematurely the connection since there is no deterministic way to release it if it was persistent (default). See #57.
  • Immediate failure to write onto a newly acquired persistent connection by HttpClient will result in automatic close/re-acquire.
  • Reactor Netty does now depend on the exploded netty dependencies instead of netty-all for better transitive control, see #28.

✨ New features and improvements

  • HttpClient now closes on cancel/dispose #57
  • HttpClient will now present a 'user-agent' by default (#55)
  • HttpClient auto-retries immediately stale connection (96daef2)
  • Safely release bytebuf when exceptions are raised up to ChannelOperationHandler (#51)

🪲 Bug fixes

  • WebsocketInbound#aggregateFrames() is now properly working (#52)
  • Decorate binary message with websocket frames #54
  • Proxy resolution now lazily resolve unresolved address #53

👍 Thanks @nebhale @rstoyanchev for the reactive feedbacks

v0.6.1.RELEASE

22 Feb 00:14
Compare
Choose a tag to compare

This is the 2nd release of Reactor Netty 0.6, as part of Aluminium-SR1 Release Train.

This is a recommended update for all Reactor Netty users, in particular regarding client connection pooling which was introduced in the previous 0.6.0.RELEASE.

⚠️ Update considerations

  • API might be subject to renaming or polishing during the 0.x phase. Reactor-Netty is already used in production apps but we encourage users to update to the latest and greatest when possible. Library developers using Reactor Netty are encouraged to provide feedback and participate in this great adventure, update as often as possible and enjoy this unique Reactive Streams + Reactor binding to date 👍 . Alternatively, if you want to shield yourself against any change, we recommend Spring 5 webflux including Controller support for our HttpServer and WebClient which encapsulates HttpClient.
  • NettyContext#addDecoder has been removed in favor of addHandlerLast

✨ New features and improvements

  • Improve Pooling internals and correctly use all the assigned thread resources instead of seemingly 1 thread (#45)
  • Add SSL SNI support (#17)
  • Provide custom Netty NameResolver in NettyOptions (#7441a3d, #7442f03)
  • Add 'dots' support in HttpServer path patterns routes (#31)
  • Support WebSocket protocol definition and matching (#20)
  • Improve NettyContext safe handler addition via addHandler, addHandlerFirst, addHandlerLast (#42, #46, #47)
    • NettyPipeline defined handlers used by reactor are now prefixed by their logical position in the pipeline : left or right. This allows addHandlerLast to always place itself before the first right handler and addHandlerFirst to place itself after the last left handler. Doing so, user will be always add custom handlers between the boundaries of the reactor encapsulated pipeline.
  • Cleaner support for channel close aligned with the underlying protocol. Are included in these connection state improvements: keep-alive, self-defined http message length, virtual half closure for http traffic given last http content received.
  • Add default SSL context for HttpClientOptions (#e717dc7)
  • Share ChannelOutboundHandler instead of replacing in Pooled Client mode (#e717dc7)
  • Do not retain extracted bytebuf via addDecoder and reduce overall ByteBuf.retain and polish ByteBuf.release (#e717dc7)
  • Improve some logging path and add extra logging for TRACE level.

🪲 Bug fixes

  • Fix proxy and SSL initialization in Pooled Client mode (#e717dc7)
  • Fix possible occurrence of mixed pooled connection traffic (#45)
  • Use isActive vs isOpen for liveness of channel (#e717dc7)
  • Properly bridge inbound errors like WebSocket subprotocol selection failure (#92d06e5)
  • Properly bridge connection/ssl error and mute when possible (#e717dc7)
  • Fix Premature cancel (main Mono cancellation) on HTTP protocols causing Connection Pool to stall and Non Pooled Connections to eventually fail with a ClosedChannelException (#e717dc7)
  • Fix server inbound drain race condition (#e717dc7)
  • Fix end delimiter http encoding state issue (#27, #e717dc7)
  • Fix default interface stackoverflow in LoopResources (#acafc8c)
  • Fix ByteBufFlux#fromPath unwanted byte skipping (#34)
  • Fix FullHttpResponse handling in HttpClient when aggregators are in use in pipeline like in a WebSocket upgrade scenario.

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

@Melozzola @tareqhs @mtritschler @nebhale @markpollack @rstoyanchev