2374e17c6e
Motivation: Headers within netty do not cleanly share a common class hierarchy. As a result some header types support some operations and don't support others. The consolidation of the class hierarchy will allow for maintenance and scalability for new codec. The existing hierarchy also has a few short comings such as it is not clear when data conversions are happening. This could result unintentionally getting back a collection or iterator where a conversion on each entry must happen. The current headers algorithm also prepends all elements which means to find the first element or return a collection in insertion order often requires a complete traversal followed by a collections.reverse call. Modifications: -Provide a generic base class which provides all the implementation for headers in netty -Provide an extension to this class which allows for name type conversions to happen (to accommodate legacy CharSequence to String conversions) -Update the headers interface to clarify when conversions will happen. -Update the headers data structure so that appends are done to avoid unnecessary iteration or collection reversal. Result: -More unified class hierarchy for headers in netty -Improved headers data structure and algorithms -headers API more clearly identify when conversions are required. |
||
---|---|---|
all | ||
buffer | ||
codec | ||
codec-dns | ||
codec-haproxy | ||
codec-http | ||
codec-http2 | ||
codec-memcache | ||
codec-mqtt | ||
codec-socks | ||
codec-stomp | ||
common | ||
example | ||
handler | ||
handler-proxy | ||
license | ||
microbench | ||
resolver | ||
resolver-dns | ||
tarball | ||
testsuite | ||
transport | ||
transport-native-epoll | ||
transport-rxtx | ||
transport-sctp | ||
transport-udt | ||
.fbprefs | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
NOTICE.txt | ||
pom.xml | ||
README.md | ||
run-example.sh |
Netty Project
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
The 'master' branch is where the development of the latest major version lives on. The development of all other 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.