Releases: reactor/reactor-netty
v0.7.3.RELEASE
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 inHttpServer
(#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 sendEmptyLastContent
, 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
- Try detecting outbound complete with
v0.7.2.RELEASE
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 ofReferenceCountUtil#safeRelease
(#201) - Improve
OSGI Import-Package
(#209) - Improvements in a flush implementation (#206, #207, 8c19d46)
- Handle
DatagramChannel
inNettyContext#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
- Fixed javadoc (#190, #191, #197, 9897a7c)
- Fix test builder when
DNS
resolving (f600a9c) - Fix timeout in a test (f34911c)
- Clear some memory leaks in tests (0e2ff98)
- Fix encoding problems in javadoc when using Java 8 (507d29d)
👍 Thanks to the following contributors that also participated to this release
v0.7.1.RELEASE
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
- Migrate to Gradle 4.2 (50196f3)
👍 Thanks to the following contributors that also participated to this release
v0.6.6.RELEASE
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 whensendFile
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
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, reworkChannel
config options (#80) - Introduce a step builder for
ClientProxyOptions
(#139) - Expose API for configuring
SslHandler
'scloseNotifyFlushTimeoutMillis
andcloseNotifyReadTimeoutMillis
(b463fc1) - Use the Builder pattern to configure Client/Server and their Options (#120)
- Shutdown and cleanup improvements
- 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
- 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 relativeGET
(#109) - Update
pendingResponses
in the event for termination (#89) - Propagate
clientError
/serverError
configurations whenHttpClientRequest#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 withZipFileSystem
, useFileChannel
(#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 specifycontent-length:0
(1f80ca0)
👍 Thanks to the following contributors that also participated to this release
v0.6.5.RELEASE
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
'scloseNotifyFlushTimeoutMillis
andcloseNotifyReadTimeoutMillis
. (b463fc1) Netty
is updated to version4.1.15.Final
(cee1eb0)
🪲 Bug fixes
v0.6.4.RELEASE
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
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
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
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 5webflux
includingController
support for ourHttpServer
andWebClient
which encapsulatesHttpClient
. NettyContext#addDecoder
has been removed in favor ofaddHandlerLast
✨ 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 viaaddHandler
,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 allowsaddHandlerLast
to always place itself before the first right handler andaddHandlerFirst
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 inHttpClient
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