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
113 lines (96 loc) · 3.74 KB
/
Copy pathCargo.toml
File metadata and controls
113 lines (96 loc) · 3.74 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
108
109
110
111
112
113
[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/arcboxlabs/arcbox-connectrpc"
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"
sync_wrapper = "1"
async-trait = "0.1"
# Protobuf. 0.9.1 is a hard floor rather than a preference, for two reasons.
# 0.9.0 widens `types::put_len_delimited_header` and the
# `map_codec::field_len` accumulator to `u64`, so code emitted by a 0.8.x
# codegen does not compile against a 0.9 runtime; and the codegen paths call
# `buffa_codegen::decode_request` and `tooling_decode_options`, which arrived
# in 0.9.1. The floor also matches the regen baseline for the checked-in
# generated code — regenerate whenever it moves.
# (connectrpc-build also sources the generated `mod.rs` `#[allow(...)]` list
# from `buffa_codegen::ALLOW_LINTS`.)
# NOTE: the `connectrpc` crate pins `buffa` directly (not `workspace = true`)
# so its `json` cargo feature can gate `buffa/json` for proto-only builds —
# keep that floor aligned with this one when bumping.
buffa = { version = "0.9.1", features = ["json"] }
buffa-types = { version = "0.9.1", features = ["json"] }
buffa-codegen = { version = "0.9.1" }
# `reflect` is needed for `DescriptorPool`, which backs connectrpc-reflection.
buffa-descriptor = { version = "0.9.1", 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"