2020-12-27 10:14:08 +01:00
![Build project ](https://github.com/netty/netty/workflows/Build%20project/badge.svg )
2013-02-27 01:21:49 +01:00
# Netty Project
2012-03-12 05:13:41 +01:00
2014-01-16 06:33:00 +01:00
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
2012-03-12 05:13:41 +01:00
## Links
2019-07-09 21:09:42 +02:00
* [Web Site ](https://netty.io/ )
* [Downloads ](https://netty.io/downloads.html )
* [Documentation ](https://netty.io/wiki/ )
2013-02-27 01:21:49 +01:00
* [@netty_project ](https://twitter.com/netty_project )
2012-03-12 05:13:41 +01:00
2013-02-27 01:21:49 +01:00
## How to build
2012-03-12 05:13:41 +01:00
2019-07-09 21:09:42 +02:00
For the detailed information about building and developing Netty, please visit [the developer guide ](https://netty.io/wiki/developer-guide.html ). This page only gives very basic information.
2013-02-27 01:28:24 +01:00
2013-02-27 01:21:49 +01:00
You require the following to build Netty:
2012-03-12 05:13:41 +01:00
2021-01-11 07:48:58 +01:00
* Latest stable [OpenJDK 8 ](https://adoptopenjdk.net )
2020-10-23 14:44:18 +02:00
* Latest stable [Apache Maven ](https://maven.apache.org/ )
2019-07-09 21:09:42 +02:00
* If you are on Linux, you need [additional development packages ](https://netty.io/wiki/native-transports.html ) installed on your system, because you'll build the native transport.
2012-03-12 05:13:41 +01:00
2020-12-27 10:14:08 +01:00
Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+ / 4.1+) is enough to run your Netty-based application.
2012-03-12 05:13:41 +01:00
2014-01-16 06:33:00 +01:00
## Branches to look
2012-03-12 05:13:41 +01:00
2020-12-27 10:14:08 +01:00
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.1 resides in [the branch '3.9' ](https://github.com/netty/netty/tree/3.9 ) and [the branch '4.1' ](https://github.com/netty/netty/tree/4.1 ) respectively.
2017-09-23 08:52:39 +02:00
2020-12-27 10:14:08 +01:00
## Usage with JDK 9+
2017-09-23 08:52:39 +02:00
2020-12-27 10:14:08 +01:00
Netty can be used in modular JDK9+ applications as a collection of automatic modules. The module names follow the
2017-09-23 08:52:39 +02:00
reverse-DNS style, and are derived from subproject names rather than root packages due to historical reasons. They
are listed below:
2018-01-27 10:47:25 +01:00
* `io.netty.all`
2017-09-23 08:52:39 +02:00
* `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.