Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
110 lines (106 loc) · 5 KB
/
Copy pathCargo.toml
File metadata and controls
110 lines (106 loc) · 5 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
[package]
name = "minvmd"
description = "Host daemon that boots Linux microVMs via libkrun and bridges host UDS to in-VM vsock."
rust-version.workspace = true
version.workspace = true
edition.workspace = true
publish.workspace = true
license.workspace = true
[features]
default = ["libkrun"]
# Compile the real VM backend (the `krun` module's `#[link(name = "krun")]` +
# build.rs link/rpath wiring). On by default; the `minimal` CLI opts out with
# default-features = false so libkrun's load command isn't stamped into a binary
# that calls no krun code.
libkrun = []
# Exposes `AnswererStatus::allocating_for_tests` so external crates — the
# `minimal` CLI's tests — can serve a real control socket whose registrations
# get an address without a running zone answerer. No production code should
# depend on this.
test-support = []
[dependencies]
anyhow.workspace = true
clap.workspace = true
clap_complete.workspace = true
fd-lock.workspace = true
libc.workspace = true
serde = { workspace = true }
thiserror.workspace = true
serde_json_lenient.workspace = true
# The strict parser the guest telemetry door reads the guest's lines with
# (`guest_telemetry::accept_line`): no comments, no trailing commas, so the
# host forwards only what a strict collector reads the same way.
serde_json.workspace = true
toml.workspace = true
# The one reader of the client `config.toml`'s `[host-exposures]` table,
# shared with minimald so a bad entry is handled one way (NET-159).
client-config.workspace = true
# Cross-platform per-process resource sampling (CPU%, RSS, disk I/O) of the VMM
# child PID, and host capacity (cores/memory) for `config set` validation (#747).
sysinfo.workspace = true
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber.workspace = true
# The shared, pure frame verdict (`boxes::core::egress`) the host-side
# egress gate applies per source address (NET-081), and the policy types the
# host-side box table (NET-138) compiles a namespace's declaration from. The
# gate runs in `minvmd` itself, outside the VM, so the verdict must be a
# normal dependency, not a test-only one.
boxes.workspace = true
# Shares minimald's portable RPC wire types: `NetworkMode` / `IpProto` drive the
# VM network mode and VM-wide egress policy (minimald itself is Linux-only and
# cannot be imported here, but the wire-types crate is portable).
minimald-rpc.workspace = true
# The JSON file-log layer both daemons write through, so the on-disk log format
# has one definition (Unit 4).
mlog.workspace = true
# Shared gvproxy-switch primitives (subnet/MAC/`-config` rendering) used by
# `net`, with the Box Egress Proxy's host-side stack peer (`switch::bep_host`,
# NET-132) that `net` starts beside the switch.
switch = { workspace = true, features = ["stack-peer"] }
# The DNS wire format the host zone answerer (`net::answerer`) decodes
# queries and encodes replies in — the same library the native daemon's
# answerer uses, so the two agree on the wire by construction. Also the DNS
# wire parsing for the host-side DNS admission table (`net::dns_pins`,
# NET-081 deciding NET-066/067 outside the VM): the replies the gate's
# ingress leg observes on their way to a box are pinned only by reading
# them. The same parser minimald's in-VM gate reads, so both legs pin from
# the same wire.
hickory-proto.workspace = true
# Async gvproxy switch supervision in `net`: the background exit-detection task
# and the async `stop()` teardown run on the tokio runtime the networking layer
# mandates (no blocking I/O in async context).
tokio.workspace = true
# Production beacon-reading code calls russh::keys::known_hosts::learn_known_hosts_path
# and russh::keys::ssh_key::PublicKey::from_openssh (R2.5).
russh.workspace = true
# Canonical state-dir base + host dir layout (`state`, `sock`,
# `volume`).
paths.workspace = true
# The box ids a proxy attachment names its boxes by (NET-133, BEP-070): one
# UUIDv7 minted per creation on the host, outside the VM, with its random
# fields from the OS CSPRNG — never a counter or a digest of the box's
# facts.
uuid.workspace = true
version.workspace = true
# The proxy-binary rule (`bep::store::proxy_binary_path`) that the
# supervisor starts the Box Egress Proxy from. `min secret` names the same
# program in a keychain item's access control, so the rule has one owner.
bep = { path = "../bep" }
[dev-dependencies]
camino.workspace = true
serial_test.workspace = true
sha2.workspace = true
tempfile.workspace = true
russh-sftp.workspace = true
# The Box Egress Proxy stand-in acceptor's tests drive the delivery against a
# real registry (`bep_stub`, NET-132) on the switch crate's channel-wired
# lane and box-side client — the same `test_util` the pool's own tests use.
switch = { workspace = true, features = ["test-util"] }
# The supervisor's span-phase tests (`telemetry`) record what the OTel layer
# exports in memory, with the same layer `mlog::otel` installs.
opentelemetry.workspace = true
opentelemetry_sdk = { workspace = true, features = ["testing"] }
tracing-opentelemetry.workspace = true
[lints]
workspace = true