forked from connectrpc/connect-rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
107 lines (90 loc) · 3.4 KB
/
Copy pathCargo.toml
File metadata and controls
107 lines (90 loc) · 3.4 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
98
99
100
101
102
103
104
105
106
107
[workspace]
members = ["connectrpc", "connectrpc-codegen", "connectrpc-build", "connectrpc-health", "connectrpc-reflection", "conformance", "examples/eliza", "examples/middleware", "examples/mtls-identity", "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.6", 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"
async-trait = "0.1"
# Protobuf. The 0.7 floor matches the regen baseline for the checked-in
# generated code and the request/stream-item API: 0.7.0 adds the
# `HasMessageView` trait and the generated `FooOwnedView` accessor wrappers
# that `ServiceRequest`/`StreamMessage` are built on, and removes the
# `OwnedView` `Deref` impl that earlier handler signatures relied on.
# (connectrpc-build also sources the generated `mod.rs` `#[allow(...)]` list
# from `buffa_codegen::ALLOW_LINTS`, present since 0.5.1.)
buffa = { version = "0.7", features = ["json"] }
buffa-types = { version = "0.7", features = ["json"] }
buffa-codegen = { version = "0.7" }
# `reflect` is needed for `DescriptorPool`, which backs connectrpc-reflection.
buffa-descriptor = { version = "0.7", features = ["reflect"] }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Compression
flate2 = { version = "1.0", default-features = false, features = ["zlib-rs"] }
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
h2 = "0.4"
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", default-features = false, 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"
# Generated trait methods return `ServiceResult<impl Encodable<M>>`; impls
# intentionally refine to a concrete body type (e.g. `ServiceResult<M>`).
refining_impl_trait = { level = "allow", priority = -1 }
[workspace.lints.clippy]
dbg_macro = "warn"
uninlined_format_args = "warn"