Skip to content

Releases: reactor/reactor-netty

v0.7.3.RELEASE

26 Jan 20:06
Compare
Choose a tag to compare

This is the 4th release of Reactor Netty 0.7, part of Bismuth-SR5 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Depending on Reactor Core v3.1.3.RELEASE see release notes (b37a31b)
  • Depending on Netty v4.1.20 (877d852)
  • Depending on Reactive Streams 1.0.2 (7249011)
  • Add support for KQueue (#212)
  • Expose Netty HttpServerCodec options in HttpServer (#150)

🪲 Bug fixes

  • Emit error signal when the connection is closed prematurely (#224)
  • Remove the special handling of status code 205 (#216)
  • When the writing Publisher completes with an error, ensure the error signal is propagated to the subscriber. (#231)
  • Fixed a race issue in HttpServerOperations#onOutboundComplete (17ada56)
  • On outbound error HttpServer will not send EmptyLastContent, but will close the connection (#239)
  • Ensure HttpClient will emit an error when connection is closed from the server side (#237)
  • Ensure write chunks are always in a correct order (#232)
  • Ensure code 301 can be controlled by HttpClientRequest#followRedirect (#253)
  • HttpServer outbound complete refinements (#264, #248)
    • Try detecting outbound complete with autoRead only if non keep alive
    • Leave HttpServerOperations#onOutboundComplete to take precedence for the terminal event
    • Clear ChannelOperations before writing the response
    • Try deferring for all flow the state cleaning inside handler
    • Fix HttpServerHandler#shouldKeepAlive

v0.7.2.RELEASE

16 Nov 19:28
Compare
Choose a tag to compare

This is the third release of Reactor Netty 0.7, part of Bismuth-SR4 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Depending on Reactor Core v3.1.2.RELEASE see release notes (3b6fa6a)
  • Depending on Netty v4.1.17 (73b7945)
  • Introduce flush on each with event loop option (#203)

🪲 Bug fixes

  • Omit filling stack trace for RedirectClientException (#193)
  • Fix possible ByteBuf leaks (f7a2df4)
  • Create default UDP LoopResource on demand (#192)
  • Tweak FluxReceive and reduce preemptive read on server (#194)
  • Correct exception message in case selector threads number is not positive (#200)
  • Prefer ReferenceCountUtil#release instead of ReferenceCountUtil#safeRelease (#201)
  • Improve OSGI Import-Package (#209)
  • Improvements in a flush implementation (#206, #207, 8c19d46)
  • Handle DatagramChannel in NettyContext#address (#210)
  • Premature response commit drops last request http packet (#213)
  • ByteBufFlux#fromPath: Release the buffer only on completion or on error (#215)

📖 Documentation, Tests and Build

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

@akiraly, @lhotari, @janvdbergh

v0.7.1.RELEASE

23 Oct 11:11
Compare
Choose a tag to compare

This is the second release of Reactor-Netty 0.7, part of Bismuth-SR3 Release Train.

This is a recommended update for all Reactor Netty users.

✨ New features and improvements

  • Use HttpClientCodec/HttpServerCodec (cce4d57)
  • Increase the default timeout, introduce a new method with timeout (#179)
  • Separate UdpClient/UdpServer (#137)

🪲 Bug fixes

  • Fixed a memory leak with keep-alive connections (#176, 21fd7a9)
  • Prevent unwanted reverse DNS lookup calls (1bf036a)
  • Leave connection gracefully finishes on http 40x, 50x, 301/302 (9eb3a10)
  • Fix possible ByteBuf leaks (f1d8576)
  • Release buffers at fromPath level (6269251, f34df23)
  • Drop out of sequence http client frames when server close (#186)
  • Remove the special handling of status codes 204/304 (116466f)
  • Do not replace the HttpServerCodec (ea736c5)
  • Do not set content length when HEAD request (#171)

📖 Documentation, Tests and Build

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

@lhotari

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