- queue_index: mmap-based priority queue with safe storage wrapper - dataset_hash: BLAKE3 parallel hashing with rayon - common: FFI utilities with panic recovery - Minimal deps: ~20 total (rayon, blake3, memmap2, walkdir, chrono) - Drop crossbeam, prometheus - use stdlib + manual metrics - Makefile: cargo build targets, help text updated - Forgejo CI: clippy, tests, miri, cargo-deny - C FFI compatible with existing Go bindings
43 lines
966 B
TOML
43 lines
966 B
TOML
[workspace]
|
|
members = ["queue_index", "dataset_hash", "common"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["FetchML Team"]
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.85.0"
|
|
|
|
[workspace.dependencies]
|
|
# Core dependencies
|
|
libc = "0.2"
|
|
thiserror = "1.0"
|
|
anyhow = "1.0"
|
|
|
|
# Keep: Performance-critical dependencies
|
|
rayon = "1.8" # ~8 deps - work-stealing worth it
|
|
blake3 = { version = "1.5", features = ["rayon"] } # ~12 deps - SIMD dispatch
|
|
memmap2 = "0.9" # ~1 dep - thin mmap wrapper
|
|
|
|
# Serialization (lightweight)
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
# Testing
|
|
tempfile = "3.10"
|
|
|
|
# Dropped: crossbeam (~6) -> use std::sync::Mutex
|
|
# Dropped: prometheus (~20) -> implement metrics manually
|
|
# Dropped: tracing (~15) -> use eprintln! for now
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|
|
|
|
[profile.dev]
|
|
debug = true
|
|
opt-level = 0
|