Skip to content

Commit 66f4215

Browse files
committed
Add HTTP/2 multiplexed connection with concurrency control
## Summary - Introduce Connection<C>, a Tower Service-based HTTP/2 connection that multiplexes requests over a single H2 session with semaphore-backed concurrency control - Add TcpConnector service and ConnectionInfo/IntoConnectionInfo abstractions for URI-based TCP connection establishment
1 parent aa1749d commit 66f4215

File tree

8 files changed

+1752
-6
lines changed

8 files changed

+1752
-6
lines changed

Cargo.lock

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/service-client/Cargo.toml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,34 @@ base64 = { workspace = true }
2525
bs58 = { workspace = true }
2626
bytes = { workspace = true }
2727
bytestring = { workspace = true }
28+
derive_builder = { workspace = true }
2829
futures = { workspace = true }
2930
h2 = "0.4.12"
3031
http = { workspace = true }
32+
http-body = { workspace = true }
3133
http-body-util = { workspace = true }
3234
http-serde = { workspace = true }
3335
hyper = { workspace = true, features = ["http1", "http2", "client"] }
3436
hyper-rustls = { workspace = true }
3537
hyper-util = { workspace = true, features = ["client-legacy"] }
3638
jsonwebtoken = { workspace = true }
39+
parking_lot = { workspace = true }
3740
pem = { version = "3.0.6" }
41+
pin-project = { workspace = true }
3842
ring = { version = "0.17.14" }
3943
rustls = { workspace = true }
4044
serde = { workspace = true }
4145
serde_json = { workspace = true }
4246
serde_with = { workspace = true }
4347
thiserror = { workspace = true }
44-
tower-service = { version = "0.3" }
48+
tokio = { workspace = true }
49+
tokio-util = { workspace = true }
50+
tokio-rustls = "0.26"
51+
tower = { workspace = true }
4552
tracing = { workspace = true }
4653
zstd = { workspace = true }
4754

4855
[dev-dependencies]
4956
googletest = { workspace = true }
50-
tempfile = { workspace = true }
57+
tempfile = { workspace = true }
58+
tokio-stream = {workspace = true}

crates/service-client/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ use std::sync::Arc;
3636

3737
mod http;
3838
mod lambda;
39+
pub mod pool;
3940
mod proxy;
4041
mod request_identity;
4142
mod utils;

0 commit comments

Comments
 (0)