-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
110 lines (104 loc) · 3.52 KB
/
Copy pathCargo.toml
File metadata and controls
110 lines (104 loc) · 3.52 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
[workspace]
resolver = "2"
members = ["crates/*"]
exclude = ["support/m80-close-range"]
[workspace.package]
version = "0.2.26"
edition = "2021"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/moradology/m80"
rust-version = "1.82"
publish = false
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
panic = "abort"
[workspace.lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
# Stronger surface hygiene — catches "pub items unused outside the crate"
# (the iter-1/2/3 audits found ~30 of these) and stale lifetimes.
unreachable_pub = "warn"
unused_lifetimes = "warn"
single_use_lifetimes = "warn"
# Don't let a `Result` slip through unobserved.
unused_must_use = "deny"
[workspace.lints.clippy]
clone_on_ref_ptr = "warn"
# Pre-1.0 internal: no scratch markers in committed code.
dbg_macro = "deny"
todo = "deny"
unimplemented = "deny"
# Doctrine: errors stay typed; don't silently drop one.
map_err_ignore = "warn"
# Catches `for x in v.clone()` and similar single-use clones the audits
# kept flagging.
redundant_clone = "warn"
# Fail-closed on assumptions about Result/Option that could be wrong.
unwrap_used = "warn"
# String-bytes slicing is a UTF-8 footgun.
string_slice = "warn"
# Clusters with the "no Other(String) prose errors" doctrine.
result_large_err = "allow"
# Surface hygiene.
must_use_candidate = "warn"
semicolon_if_nothing_returned = "warn"
manual_let_else = "warn"
wildcard_imports = "warn"
[workspace.dependencies]
# External dependencies — pinned at the workspace level so every crate uses
# the same version. Add to this list before adding to a crate's [dependencies].
clap = { version = "4", features = ["derive"] }
scopeguard = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
signal-hook = "0.3"
thiserror = "2"
anyhow = "1"
tracing = "0.1"
libc = "0.2"
hex = "0.4"
base64 = "0.22"
sha2 = "0.10"
ipnet = "2"
nix = { version = "0.29", default-features = false, features = ["user", "mount", "fs", "feature", "signal", "process", "term", "resource", "sched", "socket", "poll", "inotify"] }
rustix = { version = "1", features = ["fs"] }
portable-pty = "0.9"
terminal_size = "0.4"
ulid = "1"
tempfile = "3"
toml = "0.5"
prost = "0.13"
prost-build = "0.13"
protoc-bin-vendored = "3"
assert_cmd = "2"
caps = "0.5"
seccompiler = "0.5"
tokio = { version = "1", default-features = false }
futures-util = "0.3"
rtnetlink = "0.21"
tun = "=0.7.13"
vsock = "0.5"
# Internal m80 crates. Always reference these via `xxx.workspace = true` in
# member crates; never list a path = "..." dependency directly.
m80-proto = { path = "crates/m80-proto" }
m80-image-manifest = { path = "crates/m80-image-manifest" }
m80-firecracker-client = { path = "crates/m80-firecracker-client" }
m80-vsock = { path = "crates/m80-vsock" }
m80-jailer = { path = "crates/m80-jailer" }
m80-jailer-harden = { path = "crates/m80-jailer-harden" }
m80-cgroup = { path = "crates/m80-cgroup" }
m80-storage = { path = "crates/m80-storage" }
m80-image-store = { path = "crates/m80-image-store" }
m80-preflight = { path = "crates/m80-preflight" }
m80-net-mode = { path = "crates/m80-net-mode" }
m80-net-outbound = { path = "crates/m80-net-outbound" }
m80-snapshot = { path = "crates/m80-snapshot" }
m80-snapshot-template = { path = "crates/m80-snapshot-template" }
m80-observability = { path = "crates/m80-observability" }
m80-firecracker = { path = "crates/m80-firecracker" }
m80-test-helpers = { path = "crates/m80-test-helpers" }
m80-close-range = { path = "support/m80-close-range" }
m80-guest-kernel = { path = "support/m80-guest-kernel" }