Files
wifi-densepose/vendor/ruvector/examples/ruvLLM/Cargo.toml

182 lines
4.8 KiB
TOML

[package]
name = "ruvllm"
version = "2.0.0"
edition = "2021"
rust-version = "1.77"
license = "MIT"
authors = ["Ruvector Team"]
description = "Self-learning LLM with LFM2, Ruvector integration, and optimized NEON/Metal kernels"
repository = "https://github.com/ruvnet/ruvector"
readme = "README.md"
keywords = ["llm", "self-learning", "vector-database", "rag", "lfm2", "neon", "simd"]
categories = ["science", "machine-learning"]
[dependencies]
# Internal dependencies
ruvector-core = { path = "../../crates/ruvector-core", default-features = false }
ruvector-gnn = { path = "../../crates/ruvector-gnn", default-features = false }
ruvector-attention = { path = "../../crates/ruvector-attention" }
ruvector-graph = { path = "../../crates/ruvector-graph" }
# Optimized inference backend (ruvllm crate)
ruvllm-lib = { package = "ruvllm", path = "../../crates/ruvllm", default-features = false, features = ["async-runtime"] }
# Async runtime
tokio = { version = "1.41", features = ["rt-multi-thread", "sync", "macros", "time", "fs"] }
futures = "0.3"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = { version = "2.0.0-rc.3", features = ["serde"] }
toml = "0.8"
# Numerics
ndarray = { version = "0.16", features = ["serde", "rayon"] }
rand = "0.8"
rand_distr = "0.4"
simsimd = "5.9"
# Real LLM Inference (CPU + SIMD optimized)
candle-core = { version = "0.8", optional = true }
candle-nn = { version = "0.8", optional = true }
candle-transformers = { version = "0.8", optional = true }
hf-hub = { version = "0.3", features = ["tokio"], optional = true }
tokenizers = { version = "0.20", optional = true }
# Memory-mapped file support for large models
memmap2 = { version = "0.9", optional = true }
byteorder = { version = "1.5", optional = true }
half = { version = "2.4", features = ["num-traits", "serde"], optional = true }
dirs = { version = "5.0", optional = true }
# SONA Export (optional - for HuggingFace export)
ruvector-sona = { path = "../../crates/sona", optional = true }
# Utilities
uuid = { version = "1.11", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2.0"
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Performance
dashmap = "6.1"
parking_lot = "0.12"
lru = "0.16"
rayon = "1.10"
crossbeam = "0.8"
once_cell = "1.20"
# Hashing for deduplication
ahash = "0.8"
# Metrics
prometheus = { version = "0.13", optional = true }
# HTTP (optional server)
axum = { version = "0.7", optional = true }
tower = { version = "0.4", optional = true }
tower-http = { version = "0.5", features = ["cors", "trace"], optional = true }
# N-API bindings for Node.js
napi = { version = "2.16", features = ["async", "serde-json"], optional = true }
napi-derive = { version = "2.16", optional = true }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports", "async_tokio"] }
proptest = "1.5"
tokio-test = "0.4"
tempfile = "3.13"
approx = "0.5"
[features]
default = ["storage", "metrics"]
storage = ["ruvector-core/storage", "ruvector-core/hnsw"]
metrics = ["prometheus"]
server = ["axum", "tower", "tower-http"]
# Real LLM inference with CPU SIMD optimization
real-inference = ["candle-core", "candle-nn", "candle-transformers", "hf-hub", "tokenizers", "memmap2", "byteorder", "half", "dirs"]
# HuggingFace export for learned patterns and LoRA weights
hf-export = ["ruvector-sona"]
# N-API bindings for Node.js
napi = ["dep:napi", "dep:napi-derive"]
# Multi-threaded GEMM/GEMV with rayon (4-6x speedup)
parallel = ["ruvllm-lib/parallel"]
# Candle backend for LLM inference (Rust-native, Metal acceleration on Mac)
candle = ["ruvllm-lib/candle"]
# Metal GPU acceleration for Apple Silicon (M1/M2/M3/M4)
metal = ["ruvllm-lib/metal"]
# Full inference with Metal
inference-metal = ["candle", "metal", "parallel"]
full = ["storage", "metrics", "server", "real-inference", "hf-export", "parallel"]
[[bench]]
name = "pipeline"
harness = false
[[bench]]
name = "router"
harness = false
[[bench]]
name = "memory"
harness = false
[[bench]]
name = "attention"
harness = false
[[bench]]
name = "sona_bench"
harness = false
[lib]
name = "ruvllm"
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]
[[bin]]
name = "ruvllm-demo"
path = "src/bin/demo.rs"
[[bin]]
name = "ruvllm-server"
path = "src/bin/server.rs"
required-features = ["server"]
[[bin]]
name = "ruvllm-bench"
path = "src/bin/bench.rs"
[[bin]]
name = "ruvllm-benchmark-suite"
path = "src/bin/benchmark_suite.rs"
[[bin]]
name = "ruvllm-simd-demo"
path = "src/bin/simd_demo.rs"
[[bin]]
name = "ruvllm-pretrain"
path = "src/bin/pretrain.rs"
[[bin]]
name = "ruvllm-export"
path = "src/bin/export.rs"
required-features = ["hf-export"]
[[test]]
name = "integration"
path = "tests/integration.rs"
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
[profile.bench]
inherits = "release"
debug = true