-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
127 lines (118 loc) · 3.34 KB
/
Cargo.toml
File metadata and controls
127 lines (118 loc) · 3.34 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
[workspace]
members = [
"crates/foundation",
"crates/scanner",
"crates/hasher",
"crates/differ",
"crates/transfer",
"crates/delete",
"crates/disk",
"crates/apps",
"crates/cache",
"crates/search",
"crates/code",
"crates/storage",
"crates/profiles",
"crates/progress",
"crates/telemetry",
"crates/todo",
"crates/templates",
"crates/updater",
"crates/dedup",
"crates/cleanup",
"crates/sync",
"crates/automation",
"crates/service",
"crates/watcher",
"crates/llm",
"crates/mcp",
"crates/ui",
"crates/cli",
]
exclude = ["vendor"]
resolver = "2"
[workspace.package]
version = "0.7.1"
edition = "2024"
rust-version = "1.94.0"
license = "MIT"
[workspace.lints.clippy]
correctness = { level = "deny", priority = -1 }
perf = { level = "deny", priority = -1 }
pedantic = { level = "warn", priority = -1 }
# -- Restriction cherry-picks (never enable the whole group) --
undocumented_unsafe_blocks = "deny"
multiple_unsafe_ops_per_block = "warn"
unwrap_used = "deny"
indexing_slicing = "warn"
panic = "deny"
dbg_macro = "deny"
# -- Pedantic overrides (too noisy for this codebase) --
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
# File utility does pervasive size conversions (u64 → f64 for display, usize ↔ u32 for indices)
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
cast_possible_wrap = "allow"
# Tests use `use super::*` per project convention
wildcard_imports = "allow"
# Builder patterns, not worth annotating every method
return_self_not_must_use = "allow"
# CLAUDE.md enforces 30-line functions; clippy's 100 is redundant
too_many_lines = "allow"
# Sometimes arms are intentionally separate for readability
match_same_arms = "allow"
# Common pattern for unused bindings
used_underscore_binding = "allow"
# Too many false positives on domain terms
doc_markdown = "allow"
# Config structs legitimately need multiple bools
struct_excessive_bools = "allow"
# Style preference — items after statements is common in Rust
items_after_statements = "allow"
# src/dst, idx/len — legitimate in a file sync tool
similar_names = "allow"
[workspace.lints.rust]
unsafe_code = "warn"
[workspace.dependencies]
zero-watcher = { path = "crates/watcher" }
divan = "0.1"
# Shared across many crates
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "tracing-log"] }
tokio = { version = "1.41", features = ["rt", "rt-multi-thread", "macros", "sync", "time"] }
clap = { version = "4.5", features = ["derive"] }
rayon = "1.10"
dirs = "6.0"
tempfile = "3.13"
postcard = { version = "1.0", features = ["alloc"] }
etchdb = { version = "0.3.2", features = ["compression"] }
zstd = "0.13"
indicatif = "0.18"
crossfire = "3.1"
[profile.dev]
codegen-units = 16
debug = "limited"
split-debuginfo = "unpacked"
[profile.dev.package]
resvg = { opt-level = 3 }
rustybuzz = { opt-level = 3 }
taffy = { opt-level = 3 }
ttf-parser = { opt-level = 3 }
[profile.bench]
lto = false
codegen-units = 1
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
strip = "symbols"
overflow-checks = true
# Do NOT set panic = "abort" — catch_unwind is used at Rayon thread boundaries