# The Netty Project API Reference (3.5.5.Final)

The Netty project is an effort to provide an asynchronous event-driven network application framework and tools for rapid development of maintainable high performance and high scalability protocol servers and clients. In other words, Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP/IP socket server.

See: Description

Low-level data representation
Package | Description
--- | ---
org.jboss.netty.buffer | Abstraction of a byte buffer - the fundamental data structure to represent a low-level binary and text message.

Central interface for all I/O operations
Package | Description
--- | ---
org.jboss.netty.channel | The core channel API which is asynchronous and event-driven abstraction of various transports such as a NIO Channel.
org.jboss.netty.channel.group | A channel registry which helps a user maintain the list of open `Channel`s and perform bulk operations on them.
org.jboss.netty.channel.local | A virtual transport that enables the communication between the two parties in the same virtual machine.
org.jboss.netty.channel.socket | Abstract TCP and UDP socket interfaces which extend the core channel API.
org.jboss.netty.channel.socket.http | An HTTP-based client-side `SocketChannel` and its corresponding server-side Servlet implementation that make your existing server application work in a firewalled network.
org.jboss.netty.channel.socket.nio | NIO-based socket channel API implementation - recommended for a large number of connections (>= 1000).
org.jboss.netty.channel.socket.oio | Old blocking I/O based socket channel API implementation - recommended for a small number of connections (< 1000).

Client & Server bootstrapping utilities
Package | Description
--- | ---
org.jboss.netty.bootstrap | IoC/DI friendly helper classes which enable an easy implementation of typical client side and server side channel initialization.

Reusable I/O event interceptors
Package | Description
--- | ---
org.jboss.netty.handler.codec | Base package for codecs
org.jboss.netty.handler.codec.base64 | Encoder and decoder which transform a Base64-encoded `String` or `ChannelBuffer` into a decoded `ChannelBuffer` and vice versa.
org.jboss.netty.handler.codec.compression | Encoder and decoder which compresses and decompresses `ChannelBuffer`s in a compression format such as zlib and gzip.
org.jboss.netty.handler.codec.embedder | A helper that wraps an encoder or a decoder so that they can be used without doing actual I/O in unit tests or higher level codecs.
org.jboss.netty.handler.codec.frame | Extensible decoder and its common implementations which deal with the packet fragmentation and reassembly issue found in a stream-based transport such as TCP/IP.
org.jboss.netty.handler.codec.http | Encoder, decoder and their related message types for HTTP.
org.jboss.netty.handler.codec.http.multipart | HTTP multipart support.
org.jboss.netty.handler.codec.http.websocket |
org.jboss.netty.handler.codec.http.websocketx | Encoder, decoder, handshakers and their related message types for Web Socket data frames.
org.jboss.netty.handler.codec.marshalling | Decoder and Encoder which uses JBoss Marshalling.
org.jboss.netty.handler.codec.oneone | Simplistic abstract classes which help implement encoder and decoder that transform an object into another object and vice versa.
org.jboss.netty.handler.codec.protobuf | Encoder and decoder which transform a Google Protocol Buffers `Message` into a `ChannelBuffer` and vice versa.
org.jboss.netty.handler.codec.replay | Specialized variation of `FrameDecoder` which enables implementation of a non-blocking decoder in the blocking I/O paradigm.
org.jboss.netty.handler.codec.rtsp | An RTSP extension based on the HTTP codec.
org.jboss.netty.handler.codec.serialization | Encoder, decoder and their compatibility stream implementations which transform a `Serializable` object into a byte buffer and vice versa.
org.jboss.netty.handler.codec.spdy | Encoder, decoder, session handler and their related message types for the SPDY protocol.
org.jboss.netty.handler.codec.string | Encoder and decoder which transform a `String` into a `ChannelBuffer` and vice versa.
org.jboss.netty.handler.execution | `Executor`-based implementation of various thread models that separate business logic from I/O threads
org.jboss.netty.handler.ipfilter | Implementation of a Ip based Filter handlers.
org.jboss.netty.handler.logging | Logs a `ChannelEvent` for debugging purpose using an `InternalLogger`.
org.jboss.netty.handler.queue | The special-purpose handlers that store an event into an internal queue instead of propagating the event immediately.
org.jboss.netty.handler.ssl | SSL · TLS implementation based on `SSLEngine`
org.jboss.netty.handler.stream | Writes very large data stream asynchronously neither spending a lot of memory nor getting `OutOfMemoryError`.
org.jboss.netty.handler.timeout | Adds support for read and write timeout and idle connection notification using a `Timer`.
org.jboss.netty.handler.traffic | Implementation of a Traffic Shaping Handler and Dynamic Statistics.

Miscellaneous
Package | Description
--- | ---
org.jboss.netty.logging | Simplistic internal-use-only logging layer which allows a user to decide what logging framework Netty should use.
org.jboss.netty.util | Utility classes used across multiple packages.

Copyright © 2008-2012 The Netty Project. All Rights Reserved.