-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathCargo.toml
More file actions
97 lines (80 loc) · 2.59 KB
/
Cargo.toml
File metadata and controls
97 lines (80 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[workspace]
members = ["connectrpc", "connectrpc-codegen", "connectrpc-build", "conformance", "examples/eliza", "examples/middleware", "examples/multiservice", "examples/streaming-tour", "examples/wasm-client", "tests/streaming", "benches/rpc", "benches/rpc-tonic"]
resolver = "2"
[workspace.package]
edition = "2024"
rust-version = "1.88"
license = "Apache-2.0"
repository = "https://github.com/anthropics/connect-rust"
keywords = ["connectrpc", "grpc", "rpc", "protobuf", "tower"]
categories = ["network-programming", "web-programming::http-server", "web-programming::http-client"]
[workspace.dependencies]
# Core HTTP types
http = "1"
http-body = "1"
http-body-util = "0.1"
bytes = { version = "1.5", features = ["serde"] }
# Tower service abstraction
tower = { version = "0.5", features = ["util", "buffer"] }
tower-http = { version = "0.6", features = ["catch-panic"] }
# Async runtime
tokio = "1"
tokio-stream = "0.1"
tokio-util = "0.7"
futures = "0.3"
pin-project = "1"
# Protobuf
buffa = { version = "0.3", features = ["json"] }
buffa-types = { version = "0.3", features = ["json"] }
buffa-codegen = { version = "0.3" }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Compression
flate2 = "1.0"
zstd = "0.13"
async-compression = { version = "0.4", features = ["tokio"] }
# Error handling
thiserror = "2"
anyhow = "1"
# Utilities
percent-encoding = "2.3"
base64 = "0.22"
tracing = "0.1"
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
# HTTP server/client
hyper = "1"
hyper-util = "0"
# TLS
rustls = "0.23"
rustls-pemfile = "2"
rustls-pki-types = "1"
tokio-rustls = "0.26"
# No crypto provider feature here — tokio-rustls already pulls in aws-lc-rs.
# Enabling a second provider (ring) would make rustls's builder() panic at
# runtime because it can't auto-detect which one to use.
hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "tls12"] }
# Framework integration
axum = { version = "0.8", features = ["http2"] }
# OS types
libc = "0.2"
# Code generation utilities
heck = "0.5"
proc-macro2 = "1"
quote = "1"
syn = { version = "2", features = ["full"] }
prettyplease = "0.2"
# Dev dependencies
tempfile = "3"
rcgen = "0.14"
[workspace.lints.rust]
dead_code = "warn"
explicit_outlives_requirements = "warn"
unused_imports = "warn"
unused_lifetimes = "warn"
[workspace.lints.clippy]
dbg_macro = "warn"
uninlined_format_args = "warn"
# ConnectError carries HeaderMaps for response metadata which makes it large.
# Error handling is not on the hot path; carrying metadata in errors is worth the size.
result_large_err = "allow"