feat(transport): Expose hyper's H2 adaptive window on server #1071
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
HTTP/2 window sizes determine how many bytes the client or server is willing to allow in-flight at one time. Clients and servers maintain their own independent windows with their own independently-chosen sizes. Hyper's h2 client and servers can use "adaptive flow control" to dynamically adjust this size during the life of a connection. You can read about their adaptive scaling in the relevant Hyper issue or PR.
Tonic lets users enable this for clients but not for servers.
Solution
Add a new method to
transport::Server
which lets users set the underlying HTTP/2 server's adaptive window mode.