-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathCargo.toml
More file actions
146 lines (131 loc) · 4.42 KB
/
Copy pathCargo.toml
File metadata and controls
146 lines (131 loc) · 4.42 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
[workspace]
resolver = "2"
members = [
"crates/capsem-proto",
"crates/capsem-core",
"crates/capsem-app",
"crates/capsem-agent",
"crates/capsem-logger",
"crates/capsem-process",
"crates/capsem-service",
"crates/capsem-admin",
"crates/capsem",
"crates/capsem-bench",
"crates/capsem-tui",
"crates/capsem-mcp",
"crates/capsem-mcp-aggregator",
"crates/capsem-mcp-builtin",
"crates/capsem-mock-server",
"crates/capsem-tray",
"crates/capsem-gateway",
"crates/capsem-guard",
]
[workspace.package]
version = "1.5.1783712334"
edition = "2021"
rust-version = "1.91"
license = "Apache-2.0"
description = "The fastest way to ship with AI securely."
homepage = "https://capsem.org"
repository = "https://github.com/google/capsem"
authors = ["Elie Bursztein <github@elie.net>"]
# Always optimize blake3 -- its SIMD assembly is 100x faster than
# unoptimized Rust. Without this, debug-build hashing takes 24s for 2GB.
[profile.dev.package.blake3]
opt-level = 3
# Always optimize hot wire-format codecs in dev/install builds. `just install`
# and manual release validation use debug binaries, so leaving these crates at
# opt-level 0 makes the gateway and ledger paths look broken when the real bug is
# compiler configuration.
[profile.dev.package.serde]
opt-level = 3
[profile.dev.package.serde_core]
opt-level = 3
[profile.dev.package.serde_json]
opt-level = 3
[profile.dev.package.rmp]
opt-level = 3
[profile.dev.package."rmp-serde"]
opt-level = 3
[profile.dev.package.hickory-proto]
opt-level = 3
[profile.dev.package.memchr]
opt-level = 3
[profile.dev.package.itoa]
opt-level = 3
[profile.dev.package.ryu]
opt-level = 3
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
[workspace.lints.rust]
warnings = "deny"
# clippy 1.95 introduced two lints that flag patterns we use throughout
# the codebase intentionally. Allow them workspace-wide rather than
# refactoring 100+ call sites:
# - collapsible_match: `match { Some(x) => if ... }` is clearer than
# `match { Some(x) if ... => }` when the guard has a side effect.
# - unnecessary_sort_by: `sort_by(|a,b| a.1.cmp(&b.1))` reads fine; the
# `sort_by_key` rewrite isn't always cleaner when the key isn't Copy.
# - doc_overindented_list_items: triggers on continuation lines under
# `///` list items; we use explicit indentation for readability.
[workspace.lints.clippy]
collapsible_match = "allow"
unnecessary_sort_by = "allow"
doc_overindented_list_items = "allow"
[workspace.dependencies]
anyhow = "1"
thiserror = "2"
tokio = { version = "1", features = ["full"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
serde_yaml = "0.9"
rmp-serde = "1.3.0"
toml = "0.8"
rusqlite = { version = "0.32", features = ["bundled", "hooks", "serialize"] }
humantime = "2"
objc2 = "0.6"
objc2-virtualization = { version = "0.3", features = [
"VZVirtioFileSystemDeviceConfiguration",
"VZSharedDirectory",
"VZSingleDirectoryShare",
"VZDirectoryShare",
"VZDirectorySharingDeviceConfiguration",
] }
objc2-foundation = "0.3"
block2 = "0.6"
dispatch2 = "0.2"
rcgen = { version = "0.13", features = ["pem", "x509-parser"] }
time = "=0.3.47"
rustls = "0.23"
rustls-pemfile = "2"
tokio-rustls = "0.26"
webpki-roots = "0.26"
hyper = { version = "1", features = ["http1", "server", "client"] }
hyper-util = { version = "0.1", features = ["tokio", "http1"] }
http-body-util = "0.1"
http = "1"
axum = "0.8"
reqwest = { version = "0.12", features = ["stream", "json", "rustls-tls-webpki-roots"], default-features = false }
futures = "0.3"
tokio-stream = { version = "0.1", features = ["net"] }
async-compression = { version = "0.4", features = ["tokio", "gzip"] }
tokio-util = { version = "0.7", features = ["io"] }
sse-stream = "0.2"
base64 = "0.22"
bytes = "1"
regex = "1"
clap = { version = "4", features = ["derive"] }
crossterm = "0.29"
ratatui = "0.30"
tokio-unix-ipc = "0.4"
rmcp = { version = "1.3", features = ["client", "server"] }
# Low-level DNS protocol (wire-format codec). Used host-side by the
# capsem DNS proxy (T3) to parse guest queries, build NXDOMAIN
# responses for blocked domains, and forward allowed queries upstream.
# The agent crate uses raw bytes only; hickory is host-side only.
hickory-proto = { version = "0.26", default-features = false, features = ["std"] }