v0.9.0.RELEASE
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) - 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 forHttpServer
/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
toReactor Pool
(#717, #723) - Shade
Reactor Pool
(#723) ⚠️ Switch tofixed
connection pool by default forTCP
/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)
- Switch from
- 🌟 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'sFastThreadLocalThread
(#745) - Use
publisherOrScalarMap
inByteBufFlux
(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 favourwiretap(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)
- Remove the deprecated
📖 Documentation, Tests and Build
- 🌟 Reference documentation and examples. (#155, #627, #635, #642)
- Specify
fire-and-forget
#dispose()
behaviour forLoopResources
,ConnectionProvider
(#850, #851) - Specify
fire-and-forget
#disposeLoopsAndConnections()
behaviour forTcpResources
,HttpResources
(#850, #851) - Specify
fire-and-forget
#shutdown()
behaviour forUdpResources
(#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)