mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-23 21:25:02 +00:00
Fixes GitHub issue #44 - macOS path validation errors The path validation logic was incorrectly rejecting valid absolute paths because canonicalize() fails when the target file doesn't exist yet (common for new databases). This caused two issues: 1. "Path traversal attempt detected" error for valid absolute paths 2. Potential hangs during initialization Changes: - Create parent directories before attempting canonicalization - Convert relative paths to absolute using cwd.join() instead of relying on canonicalize() which requires files to exist - Only check for path traversal on relative paths containing ".." - Accept all absolute paths as-is (user explicitly specified them) Affected crates: - ruvector-core - ruvector-router-core - ruvector-graph 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
125 lines
2.9 KiB
TOML
125 lines
2.9 KiB
TOML
[workspace]
|
|
exclude = ["crates/micro-hnsw-wasm"]
|
|
members = [
|
|
"crates/ruvector-core",
|
|
"crates/ruvector-node",
|
|
"crates/ruvector-wasm",
|
|
"crates/ruvector-cli",
|
|
"crates/ruvector-bench",
|
|
"crates/ruvector-metrics",
|
|
"crates/ruvector-filter",
|
|
"crates/ruvector-router-core",
|
|
"crates/ruvector-router-cli",
|
|
"crates/ruvector-router-ffi",
|
|
"crates/ruvector-router-wasm",
|
|
"crates/ruvector-server",
|
|
"crates/ruvector-snapshot",
|
|
"crates/ruvector-tiny-dancer-core",
|
|
"crates/ruvector-tiny-dancer-wasm",
|
|
"crates/ruvector-tiny-dancer-node",
|
|
"crates/ruvector-collections",
|
|
"crates/ruvector-cluster",
|
|
"crates/ruvector-raft",
|
|
"crates/ruvector-replication",
|
|
"crates/ruvector-graph",
|
|
"crates/ruvector-graph-node",
|
|
"crates/ruvector-graph-wasm",
|
|
"crates/ruvector-gnn",
|
|
"crates/ruvector-gnn-node",
|
|
"crates/ruvector-gnn-wasm",
|
|
"crates/ruvector-attention",
|
|
"crates/ruvector-attention-wasm",
|
|
"crates/ruvector-attention-node",
|
|
"crates/ruvector-postgres",
|
|
"examples/refrag-pipeline",
|
|
"examples/scipix",
|
|
"examples/google-cloud",
|
|
"examples/ruvLLM",
|
|
"crates/sona",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "0.1.21"
|
|
edition = "2021"
|
|
rust-version = "1.77"
|
|
license = "MIT"
|
|
authors = ["Ruvector Team"]
|
|
repository = "https://github.com/ruvnet/ruvector"
|
|
|
|
[workspace.dependencies]
|
|
# Core functionality
|
|
redb = "2.1"
|
|
memmap2 = "0.9"
|
|
hnsw_rs = "0.3"
|
|
simsimd = "5.9"
|
|
rayon = "1.10"
|
|
crossbeam = "0.8"
|
|
|
|
# Serialization
|
|
rkyv = "0.8"
|
|
bincode = { version = "2.0.0-rc.3", features = ["serde"] }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
# Node.js bindings
|
|
napi = { version = "2.16", default-features = false, features = ["napi9", "async", "tokio_rt"] }
|
|
napi-derive = "2.16"
|
|
|
|
# WASM
|
|
wasm-bindgen = "0.2"
|
|
wasm-bindgen-futures = "0.4"
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3", features = ["Worker", "MessagePort", "console"] }
|
|
getrandom = { version = "0.3", features = ["wasm_js"] }
|
|
|
|
# Async runtime
|
|
tokio = { version = "1.41", features = ["rt-multi-thread", "sync", "macros"] }
|
|
futures = "0.3"
|
|
|
|
# Error handling and utilities
|
|
thiserror = "2.0"
|
|
anyhow = "1.0"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
# Math and numerics
|
|
ndarray = "0.16"
|
|
rand = "0.8"
|
|
rand_distr = "0.4"
|
|
|
|
# Time and UUID
|
|
chrono = "0.4"
|
|
uuid = { version = "1.11", features = ["v4", "serde", "js"] }
|
|
|
|
# CLI
|
|
clap = { version = "4.5", features = ["derive", "cargo"] }
|
|
indicatif = "0.17"
|
|
console = "0.15"
|
|
|
|
# Testing and benchmarking
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
proptest = "1.5"
|
|
mockall = "0.13"
|
|
|
|
# Performance
|
|
dashmap = "6.1"
|
|
parking_lot = "0.12"
|
|
once_cell = "1.20"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
strip = true
|
|
panic = "abort"
|
|
|
|
[profile.bench]
|
|
inherits = "release"
|
|
debug = true
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = true
|
|
|
|
[profile.test]
|