The following changes were performed on the original source code: - removed slf4j, log4j, log4j2 logging - removed internal classes for GraalVM (SCM) - removed internal classes for Blockhound - removed jetbrains annotations - private copy of jctools in io.netty.jctools - removed SecurityManager code - add module info - removed lzma dependency (too old for module) - use JdkZLibDecoder/JdkZlibEncoder in websocketx - removed JettyAlpnSslEngine - removed JettyNpnSslEngine - removed NPN - use of javax.security.cert.X509Certificate replaced by java.security.cert.Certificate - private copy of com.jcraft.zlib in io.netty.zlib - precompiled io.netty.util.collection classes added - refactored SSL handler to separate subproject netty-handler-ssl - refactored compression codecs to separate subproject netty-handler-codec-compression - moved netty-tcnative/openssl-classes to netty-internal-tcnative - removed logging handler test - removed native image handler test Challenges for Netty build on JDK 21 - unmaintained com.jcraft.jzlib, subproject netty-zlib maintains a copy of com.jcraft.zlib - JCTools uses sun.misc.Unsafe, not VarHandles, subproject netty-jctools maintains a copy of jctools - PlatformDependent uses sun.misc.Unsafe. Tests run successful by -add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED and --add-opens=jdk.unsupported/sun.misc=ALL-UNNAMED - finalize() calls in PoolThreadCache, PoolArena are deprecated - when using boringssl static, setting of SSLContent.useTasks to false makes tests hang. Tests using false setting were removed. Subproject organization Original netty subproject names are not related to package names. I reorganized the names to allow better assignment between subproject name, package name, artifact names, and java module. The following reorgnizations were performed: all -> [todo] bom -> [todo] buffer -> netty-buffer codec -> netty-handler-codec, netty-handler-codec-compression, netty-handler-codec-protobuf codec-dns -> [todo] codec-haproxy -> [todo] codec-http -> netty-handler-codec-http, netty-handler-codec-rtsp, netty-handler-codec-spdy