Netty Project
个人博客
🙂🙂🙂关注**微信公众号:【芋艿的后端小屋】**有福利:
- RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
- RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
- 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
- 新的源码解析文章实时收到通知。每周更新一篇左右。
-
网络应用框架 Netty
- 《精尽 Netty 源码分析 —— 调试环境搭建》
- 《精尽 Netty 源码分析 —— NIO 基础(一)之简介》
- 《精尽 Netty 源码分析 —— NIO 基础(二)之 Channel》
- 《精尽 Netty 源码分析 —— NIO 基础(三)之 Buffer》
- 《精尽 Netty 源码分析 —— NIO 基础(四)之 Selector》
- 《精尽 Netty 源码分析 —— NIO 基础(五)之示例》
- 《精尽 Netty 源码分析 —— Netty 简介(一)之项目结构》
- 《精尽 Netty 源码分析 —— Netty 简介(二)之核心组件》
- 《精尽 Netty 源码分析 —— 启动(一)之服务端》
- 《精尽 Netty 源码分析 —— 启动(二)之客户端》
- 《精尽 Netty 源码解析 —— EventLoop(一)之 Reactor 模型》
- 《精尽 Netty 源码解析 —— EventLoop(二)之 EventLoopGroup》
- 《精尽 Netty 源码解析 —— EventLoop(三)之 EventLoop 初始化》
- 《精尽 Netty 源码解析 —— EventLoop(四)之 EventLoop 运行》
- 《精尽 Netty 源码解析 —— EventLoop(五)之 EventLoop 处理 IO 事件》
- 《精尽 Netty 源码解析 —— EventLoop(六)之 EventLoop 处理普通任务》
- 《精尽 Netty 源码解析 —— EventLoop(七)之 EventLoop 处理定时任务》
- 《精尽 Netty 源码解析 —— EventLoop(八)之 EventLoop 优雅关闭》
- 《精尽 Netty 源码解析 —— ChannelPipeline(一)之初始化》
- 《精尽 Netty 源码解析 —— ChannelPipeline(二)之添加 ChannelHandler》
- 《精尽 Netty 源码解析 —— ChannelPipeline(三)之移除 ChannelHandler》
- 《精尽 Netty 源码解析 —— ChannelPipeline(四)之 Outbound 事件的传播》
- 《精尽 Netty 源码解析 —— ChannelPipeline(五)之 Inbound 事件的传播》
- 《精尽 Netty 源码解析 —— ChannelPipeline(六)之异常事件的传播》
- 《精尽 Netty 源码解析 —— Channel(一)之简介》
- 《精尽 Netty 源码解析 —— Channel(二)之 accept 操作》
- 《精尽 Netty 源码解析 —— Channel(三)之 read 操作》
- 《精尽 Netty 源码解析 —— Channel(四)之 write 操作》
- 《精尽 Netty 源码解析 —— Channel(五)之 flush 操作》
- 《精尽 Netty 源码解析 —— Channel(六)之 writeAndFlush 操作》
- 《精尽 Netty 源码解析 —— Channel(七)之 close 操作》
- 《精尽 Netty 源码解析 —— Channel(八)之 disconnect 操作》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBuf(一)简介》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBuf(二)核心子类》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBuf(三)内存泄露检测》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBuf(四)其它子类》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBufAllocator(一)简介》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBufAllocator(二)UnpooledByteBufAllocator》
- 《精尽 Netty 源码解析 —— Buffer 之 ByteBufAllocator(三)PooledByteBufAllocator》
- 《精尽 Netty 源码解析 —— Buffer 之 Jemalloc(一)简介》
- 《精尽 Netty 源码解析 —— Buffer 之 Jemalloc(二)PoolChunk》
- 《精尽 Netty 源码解析 —— Buffer 之 Jemalloc(三)PoolSubpage》
- 《精尽 Netty 源码解析 —— Buffer 之 Jemalloc(四)PoolChunkList》
- 《精尽 Netty 源码解析 —— Buffer 之 Jemalloc(五)PoolArena》
- 《精尽 Netty 源码解析 —— Buffer 之 Jemalloc(六)PoolThreadCache》
- 《精尽 Netty 源码解析 —— ChannelHandler(一)之简介》
- 《精尽 Netty 源码解析 —— ChannelHandler(二)之 ChannelInitializer》
- 《精尽 Netty 源码解析 —— ChannelHandler(三)之 SimpleChannelInboundHandler》
- 《精尽 Netty 源码解析 —— ChannelHandler(四)之 LoggingHandler》
- 《精尽 Netty 源码解析 —— ChannelHandler(五)之 IdleStateHandler》
- 《精尽 Netty 源码解析 —— ChannelHandler(六)之 AbstractTrafficShapingHandler》
- 《精尽 Netty 源码解析 —— Codec 之 ByteToMessageDecoder(一)Cumulator》
- 《精尽 Netty 源码解析 —— Codec 之 ByteToMessageDecoder(二)FrameDecoder》
- 《精尽 Netty 源码解析 —— Codec 之 MessageToByteEncoder》
- 《精尽 Netty 源码解析 —— Codec 之 ByteToMessageCodec》
- 《精尽 Netty 源码解析 —— Codec 之 MessageToMessageCodec》
- 《精尽 Netty 源码解析 —— Util 之 Future》
- 《精尽 Netty 源码解析 —— Util 之 FastThreadLocal》
- 《精尽 Netty 源码解析 —— Util 之 Recycler》
- 《精尽 Netty 源码解析 —— Util 之 HashedWheelTimer》
- 《精尽 Netty 源码解析 —— Util 之 MpscUnboundedArrayQueue》
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
Links
How to build
For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.
You require the following to build Netty:
- Latest stable Oracle JDK 7
- Latest stable Apache Maven
- If you are on Linux, you need additional development packages installed on your system, because you'll build the native transport.
Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.
Branches to look
Development of all versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>
. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.
Usage with JDK 9
Netty can be used in modular JDK9 applications as a collection of automatic modules. The module names follow the reverse-DNS style, and are derived from subproject names rather than root packages due to historical reasons. They are listed below:
io.netty.all
io.netty.buffer
io.netty.codec
io.netty.codec.dns
io.netty.codec.haproxy
io.netty.codec.http
io.netty.codec.http2
io.netty.codec.memcache
io.netty.codec.mqtt
io.netty.codec.redis
io.netty.codec.smtp
io.netty.codec.socks
io.netty.codec.stomp
io.netty.codec.xml
io.netty.common
io.netty.handler
io.netty.handler.proxy
io.netty.resolver
io.netty.resolver.dns
io.netty.transport
io.netty.transport.epoll
(native
omitted - reserved keyword in Java)io.netty.transport.kqueue
(native
omitted - reserved keyword in Java)io.netty.transport.unix.common
(native
omitted - reserved keyword in Java)io.netty.transport.rxtx
io.netty.transport.sctp
io.netty.transport.udt
Automatic modules do not provide any means to declare dependencies, so you need to list each used module separately
in your module-info
file.