-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
137 lines (105 loc) · 3.2 KB
/
Copy pathCargo.toml
File metadata and controls
137 lines (105 loc) · 3.2 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
[workspace]
resolver = "2"
members = ["crates/*"]
[workspace.package]
version = "0.1.13"
edition = "2024"
rust-version = "1.85"
license = "AGPL-3.0-only"
repository = "https://github.com/forkwright/akroasis"
[workspace.lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
[workspace.lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
indexing_slicing = "warn"
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
# WHY: pub(crate) inside a binary crate's private modules (e.g. akroasis
# main.rs with `mod cli;`) satisfies RUST/pub-visibility while this nursery
# lint calls it redundant. The kanon standard wins.
redundant_pub_crate = "allow"
[workspace.dependencies]
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Error handling
snafu = "0.9"
# Async
tokio = { version = "1", features = ["full"] }
# Logging
tracing = { version = "0.1", features = ["attributes"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Time
jiff = { version = "0.2", features = ["serde"] }
# IDs
ulid = { version = "3", features = ["serde"] }
# String optimisation
compact_str = { version = "0.10", features = ["serde"] }
# CLI
clap = { version = "4", features = ["derive"] }
# Configuration
figment = { version = "0.10", features = ["toml", "env"] }
# Crypto
chacha20poly1305 = "0.10"
ed25519-dalek = { version = "2", features = ["serde", "rand_core"] }
argon2 = { version = "0.5", features = ["zeroize"] }
zeroize = { version = "1", features = ["derive"] }
rand_core = { version = "0.6", features = ["getrandom"] }
subtle = "2"
# Post-quantum hybrid KEM — standalone fleet crate.
# WHY: extracted from akroasis crates/sphragis to forkwright/sphragis for
# cross-repo access. preview-pq gated; unaudited until cryptographic review.
sphragis = { git = "https://github.com/forkwright/sphragis", tag = "v0.1.1", features = ["preview-pq"] }
# Hashing
blake3 = "1"
# Binary serialization
ciborium = "0.2"
# CSV
csv = "1"
# TOML serialization
toml = { version = "1.1", features = ["preserve_order"] }
# Serial
serialport = "4"
# Embedded KV store
fjall = "3"
# File locking
fs2 = "0.4"
# Password input
rpassword = "7"
# Testing
tempfile = "3"
# Mesh networking — serial
tokio-serial = { version = "5.4.5", default-features = false }
tokio-util = { version = "0.7.18", features = ["codec"] }
bytes = "1"
# Async utilities
futures = "0.3"
# Mesh networking — BLE
btleplug = "0.12.0"
uuid = { version = "1", features = ["v4"] }
# Mesh networking — protobuf
prost = "0.14.3"
prost-types = "0.14.3"
# Mesh networking — crypto (pin exact: pre-release)
aes = "=0.9.1"
ctr = "=0.10.1"
x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
# Mesh networking — graph
petgraph = { version = "0.8.3", features = ["serde-1"] }
# Mesh networking — discovery
mdns-sd = "0.18.2"
rusb = "0.9.4"
# HTTP server
axum = { version = "0.8", features = ["macros"] }
tower = "0.5"
tower-http = { version = "0.7", features = ["cors", "trace"] }
# Testing
proptest = "1"
nix = { version = "0.31.2", features = ["pty"] }