Netty an asynchronous event-driven network application framework is a new rage for the development of Java network applications. It comprises of protocol servers and clients facilitating rapid development of maintainable high performance software. This application framework and its tools simplify network programming and are maintained by the Netty Project Community.
Netty – A Non Blocking Input Output (NIO) Client Server Framework
1. Netty
Netty – A Non Blocking Input Output (NIO) Client Server Framework
Author : Sara Stanford
2. Netty – A Non Blocking Input Output (NIO) Client Server Framework
Netty an asynchronous event-driven network application framework is a new rage for the development of Java network applications. It comprises of protocol servers and clients facilitating rapid development of maintainable high performance software. This application framework and its tools simplify network programming and are maintained by the Netty Project Community.
Netty can also be categorized as a NIO client server framework, enabling quick and easy development of network applications to simplify and streamline network programming for TCP and UDP socket servers. Netty boasts of a conducive development environment with assured stability and high end performance. It also includes the reactor pattern for programming.
The in built HTTP protocol support supports WebSockets and allows the framework to run within servlet containers. The latest Netty on the block supports backend activities with NIO and blocking Java.
Features:
The Transport Services include the following
Socket and Datagram
HTTP Tunnel
In-VM Pipe
Protocol Support is extended in the following manner
3. HTTP
Web Socket
Google Protocol buffers
SSL-StartTLS
Large File Transfer
RTSP
Zlib or gzip compression
Binary Protocols
Other Legacy Text
Core
Extensible Event Model
Universal Communication API
Zero Copy Capable Rich Byte Buffer
Design
The design integrates a unified API for both the transport types; blocking and non blocking sockets. The event model is extensible and allows clear separation of concerns. The thread model offers the flexibility of choosing between single thread or one or more thread pools like SEDA. The threads are highly customizable too. The datagram support is truly connectionless as well. The Netty pipeline abstraction coupled with the safe threads and dynamic mutability makes a strong support for this framework.
Performance & Efficiency
Netty offers more than stable performance with better throughput and lower latency, limiting memory copies to absolutely necessary numbers only. The Zero Copy Capable Rich Byte Buffer feature enables the Kernel to manage copying with Direct Memory Access (DMA). This reduces the load on the CPU and the system bus, increasing the efficiency of the framework manifolds.
Scalability & Integration
Netty allows scalability and supports scaling up to more than a thousand connections, with no performance bottlenecks maintaining efficiency. The reliability of these connections is very high and lapses free. Netty is easy to extend and build upon. Netty also offers neat integration with other environments like Linux, Java, C#,C++ or Python, making it a robust and versatile framework to depend on.
Security
4. The complete SSL/TLS and StartTLS support makes the Netty framework a very secure and safe framework
Documentation
The documentation in Netty contains many guides, tutorials and JavaDocs besides examples to assist developers. This attributes to the growing popularity of Netty amongst the developer community.