-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
150 lines (130 loc) · 5.01 KB
/
Cargo.toml
File metadata and controls
150 lines (130 loc) · 5.01 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
[workspace]
resolver = "3"
members = [
"apps/core",
"apps/mcp-server-elixir/native/core_nif",
"sdks/rust",
"tooling/performance",
]
exclude = [
"apps/auth",
"apps/chronis",
"apps/prime-mcp",
"apps/registry",
"crates/better-auth-allsource",
"tooling/allsource-inspect",
"tooling/allsource-mcp",
"tooling/recall-bench",
]
[workspace.dependencies]
# Security & Crypto
aes-gcm = "0.10"
# AllFrame web framework
allframe = "0.1"
# Internal crates
allsource-core = { path = "apps/core", default-features = false }
# Error handling
anyhow = "1.0"
argon2 = "0.5"
# Data / Arrow / Parquet
arrow = { version = "57.3", features = ["ipc", "json"] }
arrow-flight = "57.3"
async-trait = "0.1"
# Web framework
axum = { version = "0.8", features = ["json", "ws"] }
base64 = "0.22"
bumpalo = { version = "3.20", features = ["collections"] }
bytes = "1.11.1"
# Common utilities
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4.5", features = ["derive"] }
crc32fast = "1.4"
# Dev / Test
criterion = "0.8"
crossbeam = "0.8"
crossterm = "0.29"
ctrlc = "3.5"
# Storage & Concurrency
dashmap = "6.1"
datafusion = "52.1"
# Optional features
fastembed = { version = "5" }
# Compression
flate2 = "1.0"
futures = "0.3"
http = "1.0"
instant-distance = { version = "0.6" }
jsonwebtoken = { version = "10.3", features = ["rust_crypto"] }
parking_lot = "0.12"
parquet = { version = "57.3", features = ["arrow", "async"] }
prometheus = "0.14"
rand = "0.10"
ratatui = "0.29"
rocksdb = { version = "0.24" }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha2 = "0.10"
simd-json = "0.17"
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "json", "chrono", "uuid"] }
tabled = "0.17"
tantivy = { version = "0.25" }
tempfile = "3.27"
thiserror = "2.0"
time = "0.3.47"
# Async runtime
tokio = { version = "1.51", features = ["full"] }
tokio-stream = "0.1"
toml = "1.1"
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace"] }
# Observability
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
uuid = { version = "1.23", features = ["v4", "serde"] }
[workspace.lints.clippy]
# Enable pedantic group — then allow the noisy/impractical lints below
pedantic = { level = "warn", priority = -1 }
# --- Pedantic allow-list (too noisy or impractical to enforce) ---
assigning_clones = "allow" # clone_from suggestions are marginal wins
cast_possible_truncation = "allow" # u64→usize on 32-bit is fine for us
cast_possible_wrap = "allow" # u32→i32 wrapping is intentional in some spots
cast_precision_loss = "allow" # i64→f64 precision loss is acceptable
cast_sign_loss = "allow" # signed→unsigned in controlled contexts
default_trait_access = "allow" # Type::default() vs Default::default() is style
doc_markdown = "allow" # too many false positives on domain terms
float_cmp = "allow" # test assertions use assert_eq! on floats
format_push_string = "allow" # write! vs push_str(&format!) is marginal
ignore_without_reason = "allow" # test #[ignore] doesn't need reasons yet
items_after_statements = "allow" # sometimes clearer to define helpers inline
match_same_arms = "allow" # explicit arms improve readability
missing_errors_doc = "allow" # would require documenting every Result fn
missing_fields_in_debug = "allow" # custom Debug impls intentionally omit fields
missing_panics_doc = "allow" # would require documenting every unwrap
module_name_repetitions = "allow" # e.g. EventStore inside event_store module
must_use_candidate = "allow" # too many false positives on builder methods
return_self_not_must_use = "allow" # builder pattern doesn't need #[must_use]
similar_names = "allow" # domain variables often have similar names
struct_excessive_bools = "allow" # config structs legitimately have many bools
struct_field_names = "allow" # field names matching struct name is fine
too_many_lines = "allow" # main() and handler fns are naturally long
trivially_copy_pass_by_ref = "allow" # &bool, &u32 etc. are fine in our API
unnecessary_wraps = "allow" # Result/Option return types kept for API consistency
unreadable_literal = "allow" # port numbers, test IDs don't need separators
unused_async = "allow" # async fns that spawn tasks don't await directly
unused_self = "allow" # trait impls and future-proofing
used_underscore_binding = "allow" # _prefixed bindings used for clarity
wildcard_imports = "allow" # used in test modules and re-exports
# Performance (supplemental — not in pedantic)
inefficient_to_string = "warn"
large_futures = "warn"
[workspace.lints.rust]
unsafe_code = "deny"
# missing_debug_implementations: deferred — 181 types need Debug, many hold Arc<dyn Trait>
[workspace.lints.rustdoc]
broken_intra_doc_links = "deny"
[profile.release]
codegen-units = 1
lto = true
opt-level = 3
strip = true