• Core changes
  • New Buffer API replaces ByteBuf
  • ChannelHandler
  • Simplified handler type hierarchy
  • SimpleChannelInboundHandler.channelRead0() → messageReceived()
  • ChannelHandler method signature changes.
  • User events
  • ChannelHandler.pendingOutboundBytes(...) method added
  • Transport
  • Half-closure
  • ChannelHandlerContext doesn't extend AttributeMap anymore
  • ChannelPipeline.add*(EventExecutorGroup...) removed
  • Channel.eventLoop() renamed to Channel.executor()
  • EventLoopGroup.isCompatible(...) method added
  • EventLoop.registerForIo(...) and EventLoop.deregisterForIo added
  • Channel.Unsafe removal
  • ChannelOutboundBuffer not part of the Channel API anymore
  • Channel.beforeBeforeWritable() removed and Channel.bytesBeforeUnwritable() renamed to writableBytes().
  • Future / Promise
  • ProgressiveFuture / ProgressivePromise and ChannelProgressiveFuture / ChannelProgressivePromise removal
  • VoidChannelPromise removal
  • API changes to Promise and Future
  • Codec changes
  • Compression support
  • HTTP Codec
  • Rarely used codecs moved to Netty Contrib
  • GraalVM and Native Image