├── .gitignore ├── LICENSE ├── README.md ├── blog ├── 0. Build Your Own Netty - Foreword.md ├── 1. Build Your Own Netty - Start from BIO.md ├── 2. Build Your Own Netty - Move to NIO.md ├── 3. Build Your Own Netty - Reactor Pattern.md ├── 4. Build Your Own Netty - Event Driven ├── feynman.png ├── multi-threaded-reactor.png ├── netty-evolution.gif └── single-threaded-reactor.png ├── lombok.config ├── nettoy-bio ├── pom.xml └── src │ └── main │ └── java │ └── io │ └── github │ └── kezhenxu94 │ └── nettoy │ └── bio │ ├── EchoClient.java │ └── EchoServer.java ├── nettoy-event-driven ├── pom.xml └── src │ └── main │ └── java │ └── io │ └── github │ └── kezhenxu94 │ └── nettoy │ ├── EchoHandler.java │ ├── EchoServer.java │ ├── ServerAcceptor.java │ ├── ServerBootstrap.java │ ├── ServerBootstrapConfig.java │ └── channel │ ├── AbstractNioChannel.java │ ├── Channel.java │ ├── ChannelHandler.java │ ├── DefaultEventLoop.java │ ├── DefaultPipeline.java │ ├── EventLoop.java │ ├── NioChannel.java │ ├── Pipeline.java │ └── ServerNioChannel.java ├── nettoy-nio ├── pom.xml └── src │ └── main │ └── java │ └── io │ └── github │ └── kezhenxu94 │ └── nottoy │ └── nio │ ├── EchoClient.java │ └── EchoServer.java ├── nettoy-reactor ├── pom.xml ├── reactor-multi-threaded │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── io │ │ └── github │ │ └── kezhenxu94 │ │ └── nettoy │ │ ├── EchoHandler.java │ │ ├── EchoServer.java │ │ └── reactor │ │ ├── ChannelHandler.java │ │ └── Reactor.java └── reactor-single-threaded │ ├── pom.xml │ └── src │ └── main │ └── java │ └── io │ └── github │ └── kezhenxu94 │ └── nettoy │ ├── EchoHandler.java │ ├── EchoServer.java │ └── reactor │ ├── ChannelHandler.java │ └── Reactor.java ├── pom.xml └── reference └── Scalable IO in Java.pdf /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/README.md -------------------------------------------------------------------------------- /blog/0. Build Your Own Netty - Foreword.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/0. Build Your Own Netty - Foreword.md -------------------------------------------------------------------------------- /blog/1. Build Your Own Netty - Start from BIO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/1. Build Your Own Netty - Start from BIO.md -------------------------------------------------------------------------------- /blog/2. Build Your Own Netty - Move to NIO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/2. Build Your Own Netty - Move to NIO.md -------------------------------------------------------------------------------- /blog/3. Build Your Own Netty - Reactor Pattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/3. Build Your Own Netty - Reactor Pattern.md -------------------------------------------------------------------------------- /blog/4. Build Your Own Netty - Event Driven: -------------------------------------------------------------------------------- 1 | # Build Your Own Netty - Event Driven 2 | 3 | -------------------------------------------------------------------------------- /blog/feynman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/feynman.png -------------------------------------------------------------------------------- /blog/multi-threaded-reactor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/multi-threaded-reactor.png -------------------------------------------------------------------------------- /blog/netty-evolution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/netty-evolution.gif -------------------------------------------------------------------------------- /blog/single-threaded-reactor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/blog/single-threaded-reactor.png -------------------------------------------------------------------------------- /lombok.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/lombok.config -------------------------------------------------------------------------------- /nettoy-bio/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-bio/pom.xml -------------------------------------------------------------------------------- /nettoy-bio/src/main/java/io/github/kezhenxu94/nettoy/bio/EchoClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-bio/src/main/java/io/github/kezhenxu94/nettoy/bio/EchoClient.java -------------------------------------------------------------------------------- /nettoy-bio/src/main/java/io/github/kezhenxu94/nettoy/bio/EchoServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-bio/src/main/java/io/github/kezhenxu94/nettoy/bio/EchoServer.java -------------------------------------------------------------------------------- /nettoy-event-driven/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/pom.xml -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/EchoHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/EchoHandler.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/EchoServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/EchoServer.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/ServerAcceptor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/ServerAcceptor.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/ServerBootstrap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/ServerBootstrap.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/ServerBootstrapConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/ServerBootstrapConfig.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/AbstractNioChannel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/AbstractNioChannel.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/Channel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/Channel.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/ChannelHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/ChannelHandler.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/DefaultEventLoop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/DefaultEventLoop.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/DefaultPipeline.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/DefaultPipeline.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/EventLoop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/EventLoop.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/NioChannel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/NioChannel.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/Pipeline.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/Pipeline.java -------------------------------------------------------------------------------- /nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/ServerNioChannel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-event-driven/src/main/java/io/github/kezhenxu94/nettoy/channel/ServerNioChannel.java -------------------------------------------------------------------------------- /nettoy-nio/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-nio/pom.xml -------------------------------------------------------------------------------- /nettoy-nio/src/main/java/io/github/kezhenxu94/nottoy/nio/EchoClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-nio/src/main/java/io/github/kezhenxu94/nottoy/nio/EchoClient.java -------------------------------------------------------------------------------- /nettoy-nio/src/main/java/io/github/kezhenxu94/nottoy/nio/EchoServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-nio/src/main/java/io/github/kezhenxu94/nottoy/nio/EchoServer.java -------------------------------------------------------------------------------- /nettoy-reactor/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/pom.xml -------------------------------------------------------------------------------- /nettoy-reactor/reactor-multi-threaded/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-multi-threaded/pom.xml -------------------------------------------------------------------------------- /nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoHandler.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoServer.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/ChannelHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/ChannelHandler.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/Reactor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-multi-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/Reactor.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-single-threaded/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-single-threaded/pom.xml -------------------------------------------------------------------------------- /nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoHandler.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/EchoServer.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/ChannelHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/ChannelHandler.java -------------------------------------------------------------------------------- /nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/Reactor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/nettoy-reactor/reactor-single-threaded/src/main/java/io/github/kezhenxu94/nettoy/reactor/Reactor.java -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/pom.xml -------------------------------------------------------------------------------- /reference/Scalable IO in Java.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kezhenxu94/nettoy/HEAD/reference/Scalable IO in Java.pdf --------------------------------------------------------------------------------