reactor/reactor-netty
 Watch   
 Star   
 Fork   
8 days ago
reactor-netty

v1.2.0

Reactor Netty 1.2.0 is part of 2024.0.0 Release Train.

New and Noteworthy

What's Changed

⚠️ Update considerations and deprecations

  • Remove deprecated SslProvider$DefaultConfigurationSpec and SslProvider$DefaultConfigurationType by @violetagg in #3147
  • Deprecate SslContextSpec#sslContext(reactor.netty.tcp.SslProvider.ProtocolSslContextSpec) by @violetagg in #3160
  • Always add proxy.address tag for the client metrics by @violetagg in #3230
  • Resolve on demand the path from the request uri by @violetagg in #3359

✨ New features and improvements

  • Dependency updates
    • Depend on Reactor Core v3.7.0 by @chemicL in 9a5a67285f59cee19a0c73e0215087829e08b2dd, see release notes
    • Depend on Netty v4.1.114.Final by @violetagg in #3451
    • Depend on Netty QUIC Codec v0.0.68.Final by @violetagg in #3442
    • Depend on Micrometer v1.14.0 by @violetagg in #3508
    • Depend on Micrometer Tracing v1.14.0 by @violetagg in #3508
    • Depend on Micrometer Doc Generator v1.0.4 by @violetagg in d4ec32ee619f51d3917176f140561dc6cc9b7c7c
    • Depend on Context Propagation v1.1.0 by @violetagg in #3164
    • Depend on Brave v6.0.3 by @dependabot in #3172
  • HTTP/3 server support
    • Make ProtocolSslContextSpec generic by @violetagg in #3150
    • Add HTTP/3 initial settings by @violetagg in #3152
    • Add HttpProtocol#HTTP3 by @violetagg in #3161
    • Initial HTTP/3 server support by @violetagg in #3176
    • Annotate HTTP/3 server support as incubating by @violetagg in #3183
    • Add wiretap for HTTP/3 frames by @violetagg in #3186
    • Add accesslog for HTTP/3 server support by @violetagg in #3191
    • Add compression for HTTP/3 server support by @violetagg in #3192
    • Add metrics for HTTP/3 server support by @violetagg in #3193
    • Add dependency to Netty HTTP3 Codec for aggregated javadoc by @violetagg in #3197
    • Add SNI support by @violetagg in #3496
  • HTTP/3 client support
    • Add HTTP/3 client initial settings by @violetagg in #3311
    • Add HttpProtocol#HTTP3 by @violetagg in #3312
    • When there is no bind address, configure the default one by @violetagg in #3313
    • Add bind support for DefaultPooledConnectionProvider by @violetagg in #3314
    • Add Http3Pool by @violetagg in #3317
    • Initial HTTP/3 client support by @violetagg in #3319
    • Add SNI support by @violetagg in #3496
    • Resolve the remote address by @violetagg in #3507
  • Performance improvements
    • Always check idleTimeout configuration before pipeline checks by @violetagg in #3117
    • Always check readTimeout configuration before pipeline checks by @violetagg in #3118
    • Cache the request info when collecting metrics by @violetagg in #3211 and #3231
    • Immediately mark outbound as complete when sending Mono or Object by @violetagg in #3250
    • Add possibility to delay the last flush operation by @violetagg in #3271, #3280 and #3282
    • Cache the infomation whether the request is websocket by @violetagg in #3354
    • Cache Content-Length when it is about to send the FullHttpResponse by @violetagg in #3355
    • Use doFinally in order to handle cancel and error signals by @violetagg in #3356
    • Initialise ChannelOperations#shortId on demand by @violetagg in #3357
    • Simplify HttpServerOperations#onInboundNext by @violetagg in #3375
    • Simplify HttpTrafficHandler#write by @violetagg in #3376
    • Separate handling for EMPTY_LAST_CONTENT by @violetagg in #3385
    • Reduce duplication by @violetagg in #3386
    • Simplify response status code check by @violetagg in #3390
    • Simplify Http2StreamBridgeServerHandler#write by @violetagg in #3391
  • Other improvements
    • Add Unix Domain Sockets support on NIO transport by @violetagg in #3494
    • Make pending responses log messages consistent by @violetagg in #3239
    • Allow using SocketAddress proxies instead of just InetSocketAddress by @AlexProgrammerDE in #3243
    • Make MonoSend.MAX_SIZE configurable by system property by @VadimKirilchuk in #3276
    • Add Brotli support for HttpClient by @violetagg in #3331
    • HttpDecoderSpec#validateHeaders() specifies whether request/response headers are validated by @violetagg in #3370
    • Parse X-Forwarded-Prefix request header by @chemicL in #3436
    • Support allowPartialChunks in the HttpDecoderSpec by @reta in #3453
    • Add multi-release jar support by @violetagg in #3494

🐞 Bug fixes

  • Do not add IdleTimeoutHandler while processing pipelined requests by @violetagg in #3124
  • Always use remote socket address for the metrics by @violetagg in #3210
  • Ensure HttpServerMetricsRecorder#recordServerConnectionInactive/Close is invoked for websockets by @violetagg in #3229
  • Ensure ConnectionProvider metrics are disposed unconditionally when graceful shutdown by @violetagg in #3235
  • Ensure ByteBuf#release is invoked for already sent HTTP/2 response by @violetagg in #3236
  • When HttpOperations#afterMarkSentHeaders throws an error in HttpOperations#sendObject, ensure the ByteBuf is released just once by @violetagg in #3246
  • Ensure HttpClient#reactorNettyVersion() does not throw NullPointException when loaded through -javaagent under JDK 1.8 by @KyoUK4n in #3266
  • Fix HTTP/2 pool recordPendingSuccess/FailureAndLatency not recorded without timeout by @violetagg in #3252
  • Close the connection when decoding exception happens by @violetagg in #3290
  • Http2Pool: when applying acquireTimeout, check for current pending Borrowers by @violetagg in #3300
  • When an explicit EventLoopGroup is configured ensure only one connection pool is created by @violetagg in #3321
  • Do not record an exception when the request information is not available by @violetagg in #3352
  • Create on demand the response object for Expect: 100-continue by @violetagg in #3362
  • Always decode in an event loop by @violetagg in #3369
  • Ensure the buffer is not released twice by @violetagg in #3448
  • When terminating detach the connection from request/response objects by @violetagg in #3459
  • Ensure body is sent when DELETE and Transfer-Encoding by @violetagg in #3481
  • Delay sending the server preface when SNI is configured by @violetagg in #3484
  • Ensure HttpInfos#version returns the correct protocol by @violetagg in #3487

📖 Documentation, Tests

  • Clarify maximum websocket frame length configuration by @violetagg in #3116
  • Validate zstd compression by @sullis in #3126
  • Migrate reference documentation to Antora by @pderop in #3120, #3134, #3214, #3215, #3216 and by @violetagg in #3128, #3129, #3130, #3131, #3133, #3135, #3141
  • Extend the documentation for the shared (default) ConnectionProvider and Event Loop Group by @violetagg in #3281
  • Polish javadoc for HttpClient#compress by @izeye in #3349
  • Update sources references in the reference documentation by @violetagg in #3429
  • Fix typo in javadoc for allowPartialChunks setting by @andrross in #3471

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.1.17...v1.2.0

8 days ago
reactor-netty

v1.1.24

Reactor Netty 1.1.24 is part of 2023.0.12 Release Train.

What's Changed

🐞 Bug fixes

  • When terminating detach the connection from request/response objects by @violetagg in #3459
  • Ensure body is sent when DELETE and Transfer-Encoding by @violetagg in #3481
  • Delay sending the server preface when SNI is configured by @violetagg in #3484
  • Ensure HttpInfos#version returns the correct protocol by @violetagg in #3487

📖 Documentation

  • Fix typo in javadoc for allowPartialChunks setting by @andrross in #3471

New Contributors

  • @andrross made their first contribution in #3471

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.1.23...v1.1.24

2024-10-15 18:38:03
reactor-netty

v1.2.0-RC1

Reactor Netty 1.2.0-RC1 is part of 2024.0.0-RC1 Release Train. Reactor Netty 1.2.0-RC1 inherits all changes from the 1.1.x branch at the point this release was cut.

What's Changed

✨ New features and improvements

  • Depend on Reactor Core v3.7.0-RC11 by @violetagg in 36d5c21a91beb2d1f5c43f5742a9cdaeb0fc8152, see release notes
  • Depend on Netty v4.1.114.Final by @violetagg in #3451
  • Depend on Netty QUIC Codec v0.0.68.Final by @violetagg in #3442
  • Depend on Micrometer v1.14.0-RC1 by @violetagg in d4ec32ee619f51d3917176f140561dc6cc9b7c7c
  • Depend on Micrometer Tracing v1.14.0-RC1 by @violetagg in d4ec32ee619f51d3917176f140561dc6cc9b7c7c
  • Depend on Micrometer Doc Generator v1.0.4 by @violetagg in d4ec32ee619f51d3917176f140561dc6cc9b7c7c
  • Parse X-Forwarded-Prefix request header by @chemicL in #3436
  • Support allowPartialChunks in the HttpDecoderSpec by @reta in #3453

🐞 Bug fixes

  • Ensure the buffer is not released twice by @violetagg in #3448

📖 Documentation

  • Update sources references in the reference documentation by @violetagg in #3429

New Contributors

  • @chemicL made their first contribution in #3436
  • @reta made their first contribution in #3453

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.2.0-M5...v1.2.0-RC1

2024-10-15 16:13:57
reactor-netty

v1.1.23

Reactor Netty 1.1.23 is part of 2023.0.11 Release Train**.

What's Changed

✨ New features and improvements

  • Depend on Netty v4.1.114.Final by @violetagg in #3451
  • Depend on Netty QUIC Codec v0.0.68.Final by @violetagg in #3442
  • Parse X-Forwarded-Prefix request header by @chemicL in #3436
  • Support allowPartialChunks in the HttpDecoderSpec by @reta in #3453

🐞 Bug fixes

  • Ensure the buffer is not released twice by @violetagg in #3448

📖 Documentation

  • Update sources references in the reference documentation by @violetagg in #3429

New Contributors

  • @chemicL made their first contribution in #3436
  • @reta made their first contribution in #3453

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.1.22...v1.1.23

2024-08-13 20:41:10
reactor-netty

v1.2.0-M5

Reactor Netty 1.2.0-M5 is part of 2024.0.0-M5 Release Train. Reactor Netty 1.2.0-M5 inherits all changes from the 1.0.x and 1.1.x branches at the point this release was cut.

What's Changed

⚠️ Update considerations and deprecations

  • Resolve on demand the path from the request uri by @violetagg in #3359

✨ New features and improvements

  • Depend on Reactor Core v3.7.0-M5 by @violetagg in 5d07245e5e13bf2b45c3b0daa7bc50180a8fb547, see release notes
  • Depend on Netty v4.1.112.Final by @violetagg in #3361
  • Depend on Netty QUIC Codec v0.0.66.Final by @violetagg in #3383
  • Cache the infomation whether the request is websocket by @violetagg in #3354
  • Cache Content-Length when it is about to send the FullHttpResponse by @violetagg in #3355
  • Use doFinally in order to handle cancel and error signals by @violetagg in #3356
  • Initialise ChannelOperations#shortId on demand by @violetagg in #3357
  • HttpDecoderSpec#validateHeaders() specifies whether request/response headers are validated by @violetagg in #3370
  • Simplify HttpServerOperations#onInboundNext by @violetagg in #3375
  • Simplify HttpTrafficHandler#write by @violetagg in #3376
  • Separate handling for EMPTY_LAST_CONTENT by @violetagg in #3385
  • Reduce duplication by @violetagg in #3386
  • Simplify response status code check by @violetagg in #3390
  • Simplify Http2StreamBridgeServerHandler#write by @violetagg in #3391

🐞 Bug fixes

  • Do not record an exception when the request information is not available by @violetagg in #3352
  • Create on demand the response object for Expect: 100-continue by @violetagg in #3362
  • Always decode in an event loop by @violetagg in #3369

📖 Documentation

  • Polish javadoc for HttpClient#compress by @izeye in #3349

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.2.0-M4...v1.2.0-M5

2024-08-13 19:53:21
reactor-netty

v1.1.22

Reactor Netty 1.1.22 is part of 2022.0.22 and 2023.0.9 Release Train.

What's Changed

✨ New features and improvements

  • Depend on Reactor Core v3.5.20 by @violetagg in 35b79b7457520ccac77b16b22214dc92a7337691, see release notes
  • Depend on Netty v4.1.112.Final by @violetagg in #3361
  • Depend on Netty QUIC Codec v0.0.66.Final by @violetagg in #3383
  • Cache the infomation whether the request is websocket by @violetagg in #3354
  • Cache Content-Length when it is about to send the FullHttpResponse by @violetagg in #3355
  • Use doFinally in order to handle cancel and error signals by @violetagg in #3356
  • Initialise ChannelOperations#shortId on demand by @violetagg in #3357
  • Simplify HttpServerOperations#onInboundNext by @violetagg in #3375
  • Simplify HttpTrafficHandler#write by @violetagg in #3376
  • Separate handling for EMPTY_LAST_CONTENT by @violetagg in #3385
  • Reduce duplication by @violetagg in #3386
  • Simplify response status code check by @violetagg in #3390
  • Simplify Http2StreamBridgeServerHandler#write by @violetagg in #3391

🐞 Bug fixes

  • Do not record an exception when the request information is not available by @violetagg in #3352
  • Create on demand the response object for Expect: 100-continue by @violetagg in #3362
  • Always decode in an event loop by @violetagg in #3369

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.1.21...v1.1.22

2024-08-13 18:43:43
reactor-netty

v1.0.48

Reactor Netty 1.0.48 is part of 2020.0.47 Release Train. This is the last release of 1.0.x, as 2020.0.x Release Train is going out of OSS support. For the next steps, check our support policy.

What's Changed

✨ New features and improvements

  • Depend on Reactor Core v3.4.41 by @violetagg in e136daba9dd267a0937d543f06ff63d64f7b0aa4, see release notes
  • Depend on Netty v4.1.112.Final by @violetagg in #3361
  • Depend on Netty QUIC Codec v0.0.66.Final by @violetagg in #3383

🐞 Bug fixes

  • Create on demand the response object for Expect: 100-continue by @violetagg in #3362
  • Always decode in an event loop by @violetagg in #3369

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.0.47...v1.0.48

2024-07-09 20:16:10
reactor-netty

v1.2.0-M4

Reactor Netty 1.2.0-M4 is part of 2024.0.0-M4 Release Train.

This milestone adds HTTP/3 client support.

Enablement of the HTTP/3 client support:

The example below shows one simple configuration for the HttpClient:

public class Application {

	public static void main(String[] args) throws Exception {
		HttpClient client =
				HttpClient.create()
				          .remoteAddress(() -> new InetSocketAddress("www.google.com", 443))
				          .protocol(HttpProtocol.HTTP3)
				          .secure()
				          .http3Settings(spec -> spec.idleTimeout(Duration.ofSeconds(5))
				                                     .maxData(10000000)
				                                     .maxStreamDataBidirectionalLocal(1000000));

		Tuple2<String, HttpHeaders> response =
				client.get()
				      .uri("/")
				      .responseSingle((res, bytes) -> bytes.asString()
				                                           .zipWith(Mono.just(res.responseHeaders())))
				      .block();

		System.out.println("Used stream ID: " + response.getT2().get("x-http3-stream-id"));
		System.out.println("Response: " + response.getT1());
	}
}

Reactor Netty 1.2.0-M4 inherits all changes from the 1.0.x and 1.1.x branches at the point this release was cut.

What's Changed

✨ New features and improvements

  • Depend on Reactor Core v3.7.0-M4 by @chemicL in 24d4fde0b30b8c22fcb717e18ec12440db8976a9, see release notes
  • Depend on Netty v4.1.111.Final by @violetagg in #3293
  • Depend on Netty QUIC Codec v0.0.65.Final by @violetagg in #3320
  • HTTP/3 client support
    • Add HTTP/3 client initial settings by @violetagg in #3311
    • Add HttpProtocol#HTTP3 by @violetagg in #3312
    • When there is no bind address, configure the default one by @violetagg in #3313
    • Add bind support for DefaultPooledConnectionProvider by @violetagg in #3314
    • Add Http3Pool by @violetagg in #3317
    • Initial HTTP/3 client support by @violetagg in #3319
  • Add Brotli support for HttpClient by @violetagg in #3331

🐞 Bug fixes

  • Close the connection when decoding exception happens by @violetagg in #3290
  • Http2Pool: when applying acquireTimeout, check for current pending Borrowers by @violetagg in #3300
  • When an explicit EventLoopGroup is configured ensure only one connection pool is created by @violetagg in #3321

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.2.0-M3...v1.2.0-M4

2024-07-09 17:46:55
reactor-netty

v1.1.21

Reactor Netty 1.1.21 is part of 2022.0.21 and 2023.0.8 Release Train.

What's Changed

✨ New features and improvements

  • Depend on Reactor Core v3.5.19 by @chemicL in c9c66718b63927c74d6f2ff45e7a0b753fea46a3, see release notes
  • Depend on Netty v4.1.111.Final by @violetagg in #3293
  • Depend on Netty QUIC Codec v0.0.65.Final by @violetagg in #3320

🐞 Bug fixes

  • Close the connection when decoding exception happens by @violetagg in #3290
  • Http2Pool: when applying acquireTimeout, check for current pending Borrowers by @violetagg in #3300
  • When an explicit EventLoopGroup is configured ensure only one connection pool is created by @violetagg in #3321

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.1.20...v1.1.21

2024-07-09 15:51:35
reactor-netty

v1.0.47

Reactor Netty 1.0.47 is part of 2020.0.46 Release Train.

What's Changed

✨ New features and improvements

  • Depend on Reactor Core v3.4.40 by @chemicL in 7c0da79f51b24a263ddfe06230f3601ae83ab5cf, see release notes
  • Depend on Netty v4.1.111.Final by @violetagg in #3293
  • Depend on Netty QUIC Codec v0.0.65.Final by @violetagg in #3320

🐞 Bug fixes

  • Close the connection when decoding exception happens by @violetagg in #3290
  • When an explicit EventLoopGroup is configured ensure only one connection pool is created by @violetagg in #3321

Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.0.46...v1.0.47