Netty 是一个异步事件驱动的网络应用框架,主要用于可维护的高性能协议服务器和客户端的快速开发。Netty 4.2.1.Final 现已正式发布,这是针对 4.2 版本系列发布的第一个错误修复版本。
一些重点更新内容如下:
- 添加必要的 native-image 配置文件(#14928)
- 将 QUIC 编解码器从孵化器升级到 Netty Core(#14979)
- IoUring:共享 IovArray 以减少抖动和分配(#14996)
- 可选依赖 bctls-jdk15on,take 2(#14998)
- 修复 HashedWheelTimer 中 pendingTimeouts 可能不正确的问题 ( #15000 )
- SSL:如果不支持命名组,则清除 native error(#15001)
- ManualIoEventLoop:正确计算delayNanos和deadlineNanos(#15002)
- 使 public API 指定明确的 maxAllocation 以防止 OOM(#15005)
- 修复:自定义本地工作目录失败时提前崩溃(#15009)
- 在 CertificateBuilder 中添加对 ML-KEM 的支持(#15012)
- 正确计算 suboptimal chunk 退出概率(#15015)
- 修复:当 jzlib 不可用时,WebSocketClientCompressionHandler 不应声明窗口位支持(#15018)
- 为 Base64 编码器/解码器添加“unpadded”支持(#15030)
- 修复方法 AdaptivePoolingAllocator.allocateWithoutLock(...) 中的错误 ( #15031 )
- 修复 TcpDnsQueryDecoder 中的 Bytebuf 泄漏(#15033)
- 将 ticker 添加到 ManualIoEventLoop (#15043)
- IoUring:确保在 channel::read 之前正确设置缓冲区组(#15054)
- 修复 transport-native-epoll Bundle-SymbolicNames ( #15059 )
- ManualIoEventLoop.run(-1) 应该像 runNow() 一样处理(#15064)
- 修复 transport-native-kqueue Bundle-SymbolicNames ( #15065 )
- 修复 transport-native-io_uring Bundle-SymbolicNames ( #15066 )
- 修复 resolver-dns-native-macos Bundle-SymbolicNames ( #15067 )
- 修复 PlatformDependent0 字段的初始化顺序 ( #15077 )
- 重命名 native lib,以便孵化器版本和新版本可以共存(#15098)
- 更新至 netty-tcnative 2.0.71.Final(#15103)
- IoUring:暂时禁用对 RECVSEND_BUNDLE 的支持(#15104)
- DirContextUtils.addNameServer(...) 应该只在内部捕获异常(#15105)
- 使用 java.home 中的 keytool(#15121)
发布公告:https://netty.io/news/2025/05/06/4-2-1.html