Go to file
Scott Mitchell 3482651e0c HTTP/2 Non Active Stream RFC Corrections
Motivation:
codec-http2 couples the dependency tree state with the remainder of the stream state (Http2Stream). This makes implementing constraints where stream state and dependency tree state diverge in the RFC challenging. For example the RFC recommends retaining dependency tree state after a stream transitions to closed [1]. Dependency tree state can be exchanged on streams in IDLE. In practice clients may use stream IDs for the purpose of establishing QoS classes and therefore retaining this dependency tree state can be important to client perceived performance. It is difficult to limit the total amount of state we retain when stream state and dependency tree state is combined.

Modifications:
- Remove dependency tree, priority, and weight related items from public facing Http2Connection and Http2Stream APIs. This information is optional to track and depends on the flow controller implementation.
- Move all dependency tree, priority, and weight related code from DefaultHttp2Connection to WeightedFairQueueByteDistributor. This is currently the only place which cares about priority. We can pull out the dependency tree related code in the future if it is generally useful to expose for other implementations.
- DefaultHttp2Connection should explicitly limit the number of reserved streams now that IDLE streams are no longer created.

Result:
More compliant with the HTTP/2 RFC.
Fixes https://github.com/netty/netty/issues/6206.

[1] https://tools.ietf.org/html/rfc7540#section-5.3.4
2017-02-01 10:34:27 -08:00
.github Use GitHub Issue/PR Template Feature 2016-12-07 11:40:26 -08:00
all [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
buffer PooledByteBuf.capacity(...) not enforces maxCapacity() 2017-02-01 18:45:54 +01:00
codec [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-dns [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-http [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-http2 HTTP/2 Non Active Stream RFC Corrections 2017-02-01 10:34:27 -08:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-redis [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-smtp [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-socks [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
codec-xml [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
common HTTP/2 Non Active Stream RFC Corrections 2017-02-01 10:34:27 -08:00
example [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
handler [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
handler-proxy [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
license added support for Protobuf codec nano runtime 2016-01-19 21:39:17 +01:00
microbench HTTP/2 Non Active Stream RFC Corrections 2017-02-01 10:34:27 -08:00
resolver [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
resolver-dns Automatically decode DNS domain name to unicode 2017-01-31 09:28:57 +01:00
tarball [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
testsuite [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
transport [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
transport-native-epoll [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
transport-udt [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Use shaded dependency on JCTools instead of copy and paste 2016-06-10 13:19:45 +02: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 [maven-release-plugin] prepare for next development iteration 2017-01-30 15:14:02 +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 Add an example client for codec-redis 2016-04-23 11:18:12 -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.