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
[]
= "net-cli"
= "0.27.0"
= "2021"
= "Unified `net-mesh` command-line tool for the Net mesh"
= "Apache-2.0"
= "https://github.com/ai-2070/net"
= true
[[]]
= "net-mesh"
= "src/main.rs"
[]
= { = "net-mesh-sdk", = "0.27.0", = "../sdk", = false, = [
"net",
"nat-traversal",
"cortex",
"compute",
"groups",
"meshos",
"deck",
"dataforts",
"meshdb",
"aggregator",
"tool",
] }
# Clap derives the argv parser from typed structs; `env` enables
# `NET_MESH_*` env-var fallback for global flags (`--profile` etc.).
= { = "4", = ["derive", "env"] }
# `clap_complete` powers `net-mesh completion <shell>`; `clap_mangen`
# powers `net-mesh man`. Release tarballs run those subcommands
# post-build to capture the output into `share/bash-completion/...`
# and `share/man/man1/net-mesh.1`.
= "4"
= "0.3"
# Multi-thread tokio for the SDK; macros for `#[tokio::main]`.
= { = "1", = [
"macros",
"rt-multi-thread",
"sync",
"time",
"signal",
"fs",
"io-std",
"io-util",
] }
# Serde stack for output dispatch + identity/config file parsing.
= { = "1", = ["derive"] }
= "1"
= "0.9"
# Pretty terminal tables for `--output table` (Phase 1: read-only
# views).
= "7"
# Progress display for `net transfer recv-blob` / `recv-dir`. The SDK
# fetch is a single await with no per-chunk callback, so this drives a
# steady-tick spinner while the fetch runs, then a final one-line
# summary — live feedback for the directory-transfer demo without
# fabricating per-chunk counts the substrate doesn't surface. Drawn to
# stderr and suppressed under `--quiet` / non-TTY so it never pollutes
# `--output json` on stdout.
= "0.18"
# Tracing-subscriber wires `-v` / `-vv` / `-vvv` to env-filter
# levels. Format pinned to compact for stderr.
= { = "0.3", = ["env-filter", "fmt"] }
= "0.1"
# XDG paths + TOML for the config + identity stores.
= "6"
= "1.0"
# Streaming combinators used by the audit/log/failures ndjson
# outputs and the snapshot watch loop.
= "0.3"
# Hex codec for identity material (seed / public key / signature).
= "0.4"
# SHA-256 for the operator-visible identity fingerprint. ssh
# uses SHA-256 for the analogous `ssh-keygen -lf` surface; we
# mirror the algorithm so operators recognize the fingerprint
# format at a glance.
= "0.11"
# Typed errors at the config / identity boundary.
= "2"
# `cargo binstall net-cli` resolves prebuilt tarballs against the
# `release-binaries-cli.yml` workflow's GitHub Release assets.
# Defaults to the binstall convention except for the tag prefix
# (`cli-v*`, not `net-cli-v*`) and the binary name (the crate is
# `net-cli` but the binary inside is `net-mesh`).
[]
= "{ repo }/releases/download/cli-v{ version }/{ name }-v{ version }-{ target }.{ archive-suffix }"
= "{ name }-v{ version }-{ target }/net-mesh{ binary-ext }"
= "tgz"
[]
= "zip"
[]
# Drive the binary in integration tests.
= "2"
= "3"
= "3"
# Async test helpers — `#[tokio::test]` + the SDK's in-process
# cluster fixtures.
= { = "1", = [
"rt-multi-thread",
"macros",
"time",
"test-util",
] }
# Boot the aggregator-daemon in-process for the remote-attach
# integration test (`tests/aggregator_remote.rs`). The CLI
# subprocess handshakes against this booted daemon's MeshNode.
#
# Path-only on purpose — net-aggregator-daemon is a binary
# crate that doesn't publish to crates.io, so giving this
# dev-dep a `version = ...` field would make `cargo publish
# --dry-run` (and any real publish) fail at the dependency-
# resolution step. With only `path` set, cargo drops the
# dev-dep entirely when packaging.
= { = "../aggregator-daemon" }