Go to file
Eric Anderson e24a5d8839 Map HTTP/2 Streams to Channels
Motivation:

This allows using handlers for Streams in normal Netty-style. Frames are
read/written to the channel as messages, not directly as a
callback/method call. Handlers allow mixing and can ease HTTP/1 and
HTTP/2 interoperability by eventually supporting HTTP/1 handlers in
HTTP/2 and vise versa.

Modifications:

New handler Http2MultiplexCodec that converts from the current HTTP/2
API to a message-based API and child channels for streams.

Result:

The basics are done for server-side: new streams trigger creation of new
channels in much the same appearance to how new connections trigger new
channel creation. The basic frames HEADERS and DATA are handled, but
also GOAWAY and RST_STREAM.

Inbound flow control is implemented, but outbound is not. That will be
done later, along with not completing write promises on the child
channel until the write actually completes on the parent.

There is not yet support for outbound priority/weight, push promises,
and many other features.

There is a generic Object that may be set on stream frames. This also
paves the way for client-side support which needs a way to refer to
yet-to-be-created streams (due to how HEADERS allocates a stream id, and
the allocation order must be the same as transmission order).
2016-03-25 12:14:44 -07:00
all [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
buffer Fix setBytes when source is read-only ByteBuffer and target is pooled buffer 2016-03-22 09:18:44 +01:00
codec [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
codec-dns [#5014] Correctly encode / decode zero-length names when encoding DnsRecords. 2016-03-24 13:51:04 +01:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
codec-http Drop broken DefaultCookie name validation, close #4999 2016-03-22 12:32:09 +01:00
codec-http2 Map HTTP/2 Streams to Channels 2016-03-25 12:14:44 -07:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
codec-mqtt Cleanup of codec-mqtt 2016-03-24 11:02:24 +01:00
codec-socks [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
codec-stomp [#5013] Fix typo in DefaultStompFrame.toString() method. 2016-03-23 10:48:13 +01:00
codec-xml [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
common Speed up the slow path of FastThreadLocal 2016-03-23 11:36:16 +01:00
example Map HTTP/2 Streams to Channels 2016-03-25 12:14:44 -07:00
handler Using distinct aliases when building the trust manager factory, and renamed trustCertChain into trustCertCollection. 2016-03-22 21:12:10 +01:00
handler-proxy [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
license added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
microbench Speed up the slow path of FastThreadLocal 2016-03-23 11:36:16 +01:00
resolver [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
resolver-dns Cleanup code and so eliminate warnings. 2016-03-23 09:38:58 +01:00
tarball [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
testsuite [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
transport cf171ff525 Close Regression 2016-03-24 14:52:04 -07:00
transport-native-epoll EPOLL Socket Shutdown Fix 2016-03-25 12:01:03 -07:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
transport-udt [maven-release-plugin] prepare for next development iteration 2016-03-21 11:51:50 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Add JVM crash logs to .gitignore 2014-05-18 21:36:54 +09:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
pom.xml Upgrade netty-tcnative to 1.1.33.Fork15 2016-03-23 11:46:13 +01:00
README.md Updating Branches to look section to match the current branching structure of the project 2016-03-10 22:08:01 +01:00
run-example.sh Map HTTP/2 Streams to Channels 2016-03-25 12:14:44 -07:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

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:

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

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.0 resides in the branch '3.9' and the branch '4.0' respectively.