-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
100 lines (79 loc) · 2.74 KB
/
Cargo.toml
File metadata and controls
100 lines (79 loc) · 2.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
[workspace]
resolver = "2"
members = [
"crates/loam-spine-core",
"crates/loam-spine-api",
"bin/loamspine-service",
]
[workspace.package]
version = "0.9.16"
edition = "2024"
license = "AGPL-3.0-or-later"
repository = "https://github.com/ecoPrimals/loamSpine"
authors = ["ecoPrimals Project"]
[workspace.dependencies]
# Async runtime
tokio = { version = "1.40", features = ["macros", "rt", "rt-multi-thread", "net", "io-util", "sync", "time", "signal"] }
# Serialization
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
# Error handling
thiserror = "2.0"
anyhow = "1.0"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Content addressing
blake3 = { version = "1.5", default-features = false, features = ["pure"] }
# UUIDs
uuid = { version = "1.11", features = ["v7", "serde"] }
# Internal crates
loam-spine-core = { path = "crates/loam-spine-core" }
loam-spine-api = { path = "crates/loam-spine-api" }
# RPC
tarpc = { version = "0.37", features = ["serde1", "tokio1", "serde-transport", "serde-transport-json", "tcp", "unix"] }
futures = "0.3"
# CLI
clap = { version = "4.6", features = ["derive"] }
# Zero-copy buffers
bytes = "1.9"
# URL parsing
url = "2.5"
# Binary serialization for storage
rmp-serde = "1.3"
# Testing
tempfile = "3.14"
portpicker = "0.1"
[workspace.lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
[workspace.lints.clippy]
# Lint groups (lower priority, overridden by individual lints)
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
# Production code quality enforcement
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
clone_on_ref_ptr = "warn" # Catch unnecessary Arc/Rc clones
unnecessary_wraps = "warn" # Catch Result<T, E> when E never used
# Cast safety (absorbed from airSpring/neuralSpring/groundSpring ecosystem pattern)
cast_possible_truncation = "deny"
cast_sign_loss = "deny"
cast_precision_loss = "deny"
cast_possible_wrap = "deny"
cast_lossless = "warn"
# Allow some pedantic lints that are overly strict
module_name_repetitions = "allow" # Acceptable for clarity (e.g., SpineConfig in spine mod)
missing_const_for_fn = "warn" # Promoted key candidates; remaining flagged for review
significant_drop_tightening = "allow" # Lock scopes are intentional in service code
must_use_candidate = "allow" # Will add incrementally
multiple_crate_versions = "allow" # Dependencies may have version conflicts
option_if_let_else = "allow" # Pattern matching is clearer sometimes
redundant_pub_crate = "allow" # pub(crate) is intentional for module boundaries
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true