-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
274 lines (240 loc) · 9.74 KB
/
Copy pathCargo.toml
File metadata and controls
274 lines (240 loc) · 9.74 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
[workspace.lints.rust]
unsafe_code = "deny"
[workspace.lints.clippy]
# Deny unwrap/expect in production code to enforce proper error handling
unwrap_used = "deny"
expect_used = "deny"
# Lint groups with lower priority so individual overrides work
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
# Allow stylistic lints that are noisy without adding significant value
doc_markdown = "allow" # BiomeOS, JSON-RPC, etc. don't need backticks internally
missing_errors_doc = "allow" # Error handling is clear from Result types
missing_panics_doc = "allow" # Panics are avoided via unwrap_used/expect_used warnings
uninlined_format_args = "allow" # Format string style is a preference
module_name_repetitions = "allow" # Module::ModuleThing is idiomatic in our codebase
similar_names = "allow" # avg_cpu vs avg_gpu is intentionally similar
collapsible_if = "allow" # let-chains preferred; fix incrementally (edition 2024)
must_use_candidate = "allow" # Fix incrementally; too noisy for entire codebase at once
return_self_not_must_use = "allow" # Builders return Self; fix incrementally
missing_const_for_fn = "allow" # Fix incrementally; many functions need const evaluation
cast_possible_truncation = "allow" # Safe: see biomeos-types/src/cast.rs for audited helpers; per-site #[expect] for new code
cast_precision_loss = "allow" # Safe: display-only f64 values; precision beyond 2^53 is irrelevant for metrics/UI
cast_sign_loss = "allow" # Safe: all sites verified unsigned; see biomeos-types/src/cast.rs for checked alternatives
cast_lossless = "allow" # Widening casts are always safe; .into() preferred for new code
option_if_let_else = "allow" # Style preference; match is often clearer
redundant_pub_crate = "allow" # pub(crate) vs pub is a valid choice
significant_drop_tightening = "allow" # RwLock/Mutex scoping is intentional
struct_excessive_bools = "allow" # Config structs legitimately have multiple bool fields
use_self = "allow" # Type::Method vs Self::Method is a style preference
unnecessary_wraps = "allow" # Some Result wraps needed for trait conformance
items_after_statements = "allow" # Const/type items near their usage is intentional
unused_async = "allow" # Async trait methods may not await yet
[workspace]
resolver = "2"
default-members = [
"crates/biomeos",
]
members = [
"crates/neural-api-client-sync",
"crates/neural-api-client",
"crates/biomeos-genome-deploy",
"crates/biomeos",
"crates/biomeos-types",
"crates/biomeos-core",
"crates/biomeos-cli",
"crates/biomeos-api",
"crates/biomeos-manifest",
"crates/biomeos-system",
"crates/biomeos-primal-sdk",
"crates/biomeos-chimera",
"crates/biomeos-niche",
"crates/biomeos-spore", # USB spore system (orchestration only, BearDog handles crypto)
"crates/biomeos-federation", # Hierarchical federation and sub-federation management
"crates/biomeos-compute", # Isomorphic & fractal compute architecture
"crates/biomeos-graph", # Graph-based orchestration for Neural API
"crates/biomeos-ui", # Interactive UI orchestration - network effect of multiple primals
"crates/biomeos-boot",
"crates/biomeos-deploy", "crates/biomeos-test-utils", "crates/biomeos-nucleus",
"crates/biomeos-atomic-deploy", # Genetic lineage atomic deployment (modern Rust, no bash)
"crates/biomeos-genomebin-v3",
"crates/biomeos-genome-factory",
"crates/biomeos-pseudospore", # pseudoSpore envelope validation (NC-1.4)
]
exclude = [
"tools", # Standalone workspace for dev/integration tools
"tools/harvest", # Standalone workspace for genomeBin harvesting
]
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.87"
authors = ["biomeOS Team"]
license = "AGPL-3.0-or-later"
repository = "https://github.com/ecoPrimals/biomeOS"
homepage = "https://biomeOS.org"
documentation = "https://docs.biomeOS.org"
description = "biomeOS ecosystem workspace"
keywords = ["biomeos", "distributed", "sovereignty", "primals"]
categories = ["os", "distributed-systems", "virtualization"]
[workspace.dependencies]
# Core dependencies
tokio = { version = "1.0", default-features = false, features = ["rt-multi-thread", "macros", "sync", "time"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bytes = "1.0"
serde_yaml = { package = "serde-saphyr", version = "0.0.29" }
uuid = { version = "1.0", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
anyhow = "1.0"
thiserror = "2"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
clap = { version = "4.0", features = ["derive"] }
axum = { version = "0.8", features = ["ws"] }
tower = { version = "0.5", features = [] }
ureq = { version = "2.9", default-features = false, features = ["json"] }
# Async and futures
futures = "0.3"
# Serialization
toml = "0.9"
# RPC frameworks (JSON-RPC + tarpc for performance escalation)
tarpc = { version = "0.37", features = ["serde-transport", "serde-transport-bincode", "tokio1", "unix"] }
tokio-serde = { version = "0.9", features = ["bincode"] }
# Utilities
dashmap = "6"
# Networking
hyper = { version = "1.0", default-features = false, features = ["client", "server", "http1"] }
# Testing
temp-env = { version = "0.3", features = ["async_closure"] }
tempfile = "3.8"
criterion = "0.5"
etcetera = "0.11"
rand = "0.9"
sha2 = "0.10"
base64 = "0.22"
tokio-test = "0.4"
# HTTP stack building blocks (members merge feature flags as needed)
hyper-util = { version = "0.1", default-features = false }
http-body-util = "0.1"
tower-http = { version = "0.5", default-features = false }
tokio-util = { version = "0.7", default-features = false }
tokio-stream = "0.1"
# WebSockets / async helpers
tokio-tungstenite = "0.29"
futures-util = "0.3"
async-stream = "0.3.6"
# Crypto & secrets
hmac = "0.12"
hkdf = "0.12"
chacha20poly1305 = "0.10"
zeroize = { version = "1.7", features = ["derive"] }
ed25519-dalek = "2.1"
blake3 = { version = "1.5", default-features = false, features = ["pure"] }
# Data structures / parsing
indexmap = { version = "2.0", features = ["serde"] }
url = { version = "2.5", features = ["serde"] }
semver = { version = "1.0", features = ["serde"] }
glob = "0.3"
regex = "1.11"
# OS interfaces
rustix = "1"
which = "8"
flate2 = { version = "1.0", default-features = false, features = ["rust_backend"] }
tar = { version = "0.4", default-features = false }
# Linux RTNETLINK: bridge/link ops in biomeos-deploy (transitive netlink-sys, netlink-packet-*).
# Accepted stack — kernel AF_NETLINK socket, no userspace C libs (e.g. libnl).
rtnetlink = "0.20"
# CLI / TUI helpers
indicatif = "0.17"
colored = "2.1"
console = "0.15"
comfy-table = "7.0"
humantime = "2.1"
# Storage / codecs
redb = "2.4"
lz4_flex = "0.14"
hex = "0.4"
mdns-sd = "0.20.1"
# Async I/O & bytes helpers
async-fs = "2.1"
serde_bytes = "0.11"
# Testing
proptest = "1"
wiremock = "0.6"
tracing-test = "0.2"
assert_cmd = "2"
predicates = "3"
[package]
name = "biomeos"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
description.workspace = true
keywords.workspace = true
categories.workspace = true
[lib]
doc = false
[dependencies]
# Core BiomeOS components
biomeos-core = { path = "crates/biomeos-core", version = "0.1.0" }
biomeos-types = { path = "crates/biomeos-types", version = "0.1.0" }
biomeos-primal-sdk = { path = "crates/biomeos-primal-sdk", version = "0.1.0" }
biomeos-manifest = { path = "crates/biomeos-manifest", version = "0.1.0" }
biomeos-system = { path = "crates/biomeos-system", version = "0.1.0" }
biomeos-chimera = { path = "crates/biomeos-chimera", version = "0.1.0" }
biomeos-atomic-deploy = { path = "crates/biomeos-atomic-deploy", version = "0.1.0" }
biomeos-niche = { path = "crates/biomeos-niche", version = "0.1.0" }
biomeos-spore = { path = "crates/biomeos-spore", version = "0.1.0" }
biomeos-graph = { path = "crates/biomeos-graph", version = "0.1.0" }
# Async runtime
tokio = { workspace = true, features = ["net", "io-util", "fs", "process"] }
# Error handling
anyhow = { workspace = true }
thiserror = { workspace = true }
# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
serde_yaml = { workspace = true }
uuid = { workspace = true }
clap = { workspace = true }
axum = { workspace = true }
# Logging and tracing
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
etcetera = { workspace = true }
# Time handling
chrono = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["net", "io-util", "test-util"] }
tokio-test = { workspace = true }
anyhow = { workspace = true }
tempfile = { workspace = true }
tracing-test = { workspace = true }
wiremock = { workspace = true }
rand = { workspace = true }
biomeos-test-utils = { path = "crates/biomeos-test-utils", version = "0.1.0" }
[[example]]
name = "chimera_registry_demo"
path = "examples/chimera_registry_demo.rs"
[[example]]
name = "full_ecosystem_demo"
path = "examples/full_ecosystem_demo.rs"
[[example]]
name = "benchscale_p2p_test"
path = "examples/benchscale_p2p_test.rs"
# =============================================================================
# Release Profile (workspace-wide)
# =============================================================================
# NOTE: Profile settings MUST be at workspace root (non-root profiles are ignored)
[profile.release]
strip = false # Keep symbols for debugging
lto = true # Link-time optimization for smaller binaries
panic = "abort" # No unwinding — faster and smaller (critical for init/PID 1)