Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.
You will require the following to build Netty:
- Latest stable OpenJDK 11 for Netty 5, OpenJDK 8 for older releases.
- Latest stable Apache Maven
- If you are on Linux or MacOS, 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+ / 4.1+) are enough to run your Netty-based application.
Development of released versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>.
For example, the development of 3.9 and 4.1 resides in the branch '3.9' and
the branch '4.1' respectively. Development for Netty 5 resides on the
main branch.
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.netty5.allio.netty5.bufferio.netty5.codecio.netty5.codec.dnsio.netty5.codec.httpio.netty5.codec.http2io.netty5.codec.smtpio.netty5.codec.xmlio.netty5.commonio.netty5.handlerio.netty5.handler.proxyio.netty5.resolverio.netty5.resolver.dnsio.netty5.transportio.netty5.transport.epoll(nativeomitted - reserved keyword in Java)io.netty5.transport.kqueue(nativeomitted - reserved keyword in Java)io.netty5.transport.unix.common(nativeomitted - reserved keyword in Java)
Automatic modules do not provide any means to declare dependencies, so you need to list each used module separately
in your module-info file.