feat(codec): compression support (#692)

* Initial compression support

* Support configuring compression on `Server`

* Minor clean up

* Test that compression is actually happening

* Clean up some todos

* channels compressing requests

* Move compression to be on the codecs

* Test sending compressed request to server that doesn't support it

* Clean up a bit

* Compress server streams

* Compress client streams

* Bidirectional streaming compression

* Handle receiving unsupported encoding

* Clean up

* Add note to future self

* Support disabling compression for individual responses

* Add docs

* Add compression examples

* Disable compression behind feature flag

* Add some docs

* Make flate2 optional dependency

* Fix docs wording

* Format

* Reply with which encodings are supported

* Convert tests to use mocked io

* Fix lints

* Use separate counters

* Don't make a long stream

* Address review feedback
This commit is contained in:
David Pedersen
2021-07-02 11:25:03 -04:00
committed by GitHub
parent 7677ad6476
commit 0583cff80f
30 changed files with 2191 additions and 98 deletions
+8
View File
@@ -150,6 +150,14 @@ path = "src/hyper_warp_multiplex/client.rs"
name = "hyper-warp-multiplex-server"
path = "src/hyper_warp_multiplex/server.rs"
[[bin]]
name = "compression-server"
path = "src/compression/server.rs"
[[bin]]
name = "compression-client"
path = "src/compression/client.rs"
[dependencies]
tonic = { path = "../tonic", features = ["tls"] }
prost = "0.7"