[package]
name = "warm-rust"
version = "0.6.5"
edition = "2021"
rust-version = "1.89"
license = "Apache-2.0"
authors = ["WritersLogic, Inc. <david@writerslogic.com>"]
description = "Local-first search engine and agent memory: fast approximate nearest-neighbor and BM25 full-text search, encrypted stores, provable deletion, built on vector-symbolic architectures."
repository = "https://github.com/writerslogic/warm"
homepage = "https://writerslogic.com/warm"
documentation = "https://docs.rs/warm-rust"
keywords = ["vector-database", "vector-search", "full-text-search", "agent-memory", "rag"]
categories = ["database-implementations", "text-processing", "algorithms", "data-structures", "science"]
readme = "README.md"
include = [
"/Cargo.toml",
"/Cargo.lock",
"/README.md",
"/LICENSE",
"/CHANGELOG.md",
"/build.rs",
"/src/**",
"/tests/**",
"/examples/**",
"/benches/**",
"/docs/**",
"/benchmarks/embedding/embed_store_bench.rs",
"/benchmarks/public/vector_glove_development.rs",
"/benchmarks/public/vector_glove_diagnosis.rs",
"/benchmarks/research/phase_resonator/cases.rs",
"/benchmarks/results/holography_resonator_v1/baseline.rs",
]
[lib]
name = "writerslogic_warm"
crate-type = ["cdylib", "rlib"]
[dependencies]
napi = { version = "3.9", features = ["async", "serde-json"], optional = true }
napi-derive = { version = "3.5", optional = true }
pyo3 = { version = "0.30", features = ["extension-module", "abi3-py39"], optional = true }
numpy = { version = "0.30", optional = true }
tokio = { version = "1", optional = true }
serde = { version = "1.0", features = ["derive", "rc"] }
ts-rs = { version = "12", features = ["serde-compat"], optional = true }
schemars = { version = "1.2", features = ["derive"], optional = true }
serde_json = { version = "1.0", features = ["float_roundtrip"] }
serde_json_canonicalizer = { version = "0.4.1", optional = true }
flate2 = { version = "1.1", optional = true }
http = { version = "1", optional = true }
bincode = { version = "2.0", features = ["serde"] }
rand = "0.10"
crc32fast = "1.3"
lz4_flex = "0.14"
rayon = "1.8"
parking_lot = { version = "0.12", features = ["arc_lock"], optional = true }
memmap2 = "0.9"
bytemuck = "1"
mimalloc = { version = "0.1", default-features = false, optional = true }
anyhow = "1.0"
thiserror = "2.0"
tracing = "0.1"
clap = { version = "4.4", features = ["derive", "env"], optional = true }
foldhash = "0.2"
nalgebra = { version = "0.35", features = ["serde-serialize"] }
ed25519-dalek = { version = "3", features = ["rand_core"], optional = true }
zeroize = { version = "1", features = ["derive"], optional = true }
aes-gcm = { version = "0.11", optional = true }
argon2 = { version = "0.6", optional = true }
sha2 = { version = "0.11", optional = true }
coset = { version = "0.4", optional = true }
ciborium = { version = "0.2", optional = true }
bs58 = { version = "0.5", optional = true }
ureq = { version = "3", optional = true }
multibase = { version = "0.9", optional = true }
base64 = { version = "0.23", optional = true }
tempfile = "3"
axum = { version = "0.8", default-features = false, features = ["http1", "tokio", "json", "query"], optional = true }
subtle = { version = "2.6", optional = true }
hyper = { version = "1", default-features = false, features = ["server", "http1", "http2"], optional = true }
hyper-util = { version = "0.1", default-features = false, features = ["server-auto", "server-graceful", "service", "tokio", "http1", "http2"], optional = true }
tower-service = { version = "0.3", optional = true }
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"], optional = true }
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12"], optional = true }
tar = { version = "0.4", default-features = false, optional = true }
libc = "0.2"
http-body-util = { version = "0.1", optional = true }
bytes = { version = "1", optional = true }
futures-util = { version = "0.3", default-features = false, optional = true }
candle-core = { version = "0.11", optional = true }
candle-nn = { version = "0.11", optional = true }
candle-transformers = { version = "0.11", optional = true }
tokenizers = { version = "0.23", default-features = false, features = ["fancy-regex"], optional = true }
rust-stemmers = "1.2.0"
rmcp = { version = "3.7", default-features = false, features = ["server", "client", "transport-io", "transport-child-process", "transport-streamable-http-server"], optional = true }
tokio-util = { version = "0.7", optional = true }
libm = { version = "0.2", optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
candle-core = { version = "0.11", features = ["metal"], optional = true }
candle-nn = { version = "0.11", features = ["metal"], optional = true }
candle-transformers = { version = "0.11", features = ["metal"], optional = true }
[target.'cfg(warm_cuda)'.dependencies]
candle-core = { version = "0.11", features = ["cuda"], optional = true }
candle-nn = { version = "0.11", features = ["cuda"], optional = true }
candle-transformers = { version = "0.11", features = ["cuda"], optional = true }
[build-dependencies]
napi-build = { version = "2.2", optional = true }
[dev-dependencies]
criterion = "0.8"
proptest = "1.0"
tempfile = "3"
rcgen = { version = "0.14", default-features = false, features = ["crypto", "ring", "pem"] }
[[bench]]
name = "warm_benchmark"
harness = false
[[example]]
name = "verify_cogmem_sample"
required-features = ["provenance"]
[[example]]
name = "emit_w3c_credential"
required-features = ["provenance"]
[[example]]
name = "zero_trust_demo"
required-features = ["security"]
[[bin]]
name = "security-probe"
path = "src/bin/research/security-probe.rs"
required-features = ["security", "server"]
[features]
default = []
cli = ["dep:clap"]
mimalloc = ["dep:mimalloc"]
conversation-memory = ["sha2"]
node-api = ["napi", "napi-derive", "tokio", "tokio/rt", "napi-build", "dep:ts-rs"]
python = ["pyo3", "dep:numpy"]
security = ["ed25519-dalek", "zeroize", "aes-gcm", "aes-gcm/zeroize", "argon2", "sha2"]
provenance = ["security", "dep:parking_lot", "coset", "ciborium", "bs58", "multibase", "base64", "dep:serde_json_canonicalizer", "dep:flate2", "dep:http"]
provenance-scitt = ["provenance", "ureq"]
experimental = []
experimental-batch-pool = ["experimental"]
experimental-neighbor-admission = ["experimental"]
experimental-query-x4 = ["experimental"]
experimental-build-search = ["experimental"]
local-models = ["dep:candle-core", "dep:candle-nn", "dep:candle-transformers", "dep:tokenizers", "sha2"]
local-embed = ["dep:tokenizers", "sha2", "dep:libm"]
local-embed-download = ["local-embed", "ureq"]
private-search = ["zeroize", "rand/chacha"]
server = ["dep:parking_lot", "tokio", "tokio/rt-multi-thread", "tokio/macros", "tokio/net", "tokio/time", "tokio/sync", "tokio/io-util", "tokio/fs", "tokio/signal", "cli", "dep:schemars", "axum", "subtle", "sha2", "dep:hyper", "dep:hyper-util", "dep:tower-service", "dep:rustls", "dep:tokio-rustls", "dep:tar", "dep:http-body-util", "dep:bytes", "dep:futures-util"]
mcp = ["dep:parking_lot", "dep:rmcp", "dep:tokio-util", "tokio", "tokio/rt-multi-thread", "tokio/macros", "tokio/net", "tokio/time", "tokio/sync", "tokio/signal", "cli", "axum", "subtle", "dep:hyper", "dep:hyper-util", "dep:tower-service", "dep:futures-util", "tokio/io-util", "ureq"]
[[bin]]
name = "warm-embed"
path = "src/bin/warm-embed.rs"
required-features = ["local-embed", "cli"]
[[bin]]
name = "embed-store-bench"
path = "benchmarks/embedding/embed_store_bench.rs"
required-features = ["local-embed", "cli"]
[[bin]]
name = "warm-eval"
path = "src/bin/warm-eval.rs"
[[bin]]
name = "warm-admin"
path = "src/bin/warm-admin.rs"
required-features = ["cli"]
[[bin]]
name = "warm-format"
path = "src/bin/warm-format.rs"
required-features = ["cli"]
[[bin]]
name = "warm-server"
path = "src/bin/warm-server/main.rs"
required-features = ["server"]
[[bin]]
name = "warm-mcp"
path = "src/bin/warm-mcp.rs"
required-features = ["mcp"]
[[bin]]
name = "warm-benchmark-suite"
path = "src/bin/research/warm-benchmark-suite.rs"
required-features = ["experimental"]
[[bin]]
name = "warm-scaling"
path = "src/bin/research/warm-scaling.rs"
required-features = ["experimental"]
[[bin]]
name = "block-recovery-test"
path = "src/bin/research/block-recovery-test.rs"
required-features = ["experimental"]
[[bin]]
name = "public-bench"
path = "src/bin/research/public-bench.rs"
required-features = ["cli", "mimalloc"]
[[bin]]
name = "conversation-eval"
path = "src/bin/research/conversation-eval.rs"
required-features = ["conversation-memory", "cli"]
[[bin]]
name = "route-sweep"
path = "src/bin/research/route-sweep.rs"
[[bin]]
name = "bundle-subset-sweep"
path = "src/bin/research/bundle-subset-sweep.rs"
required-features = ["experimental"]
[[bin]]
name = "algebraic-codebook-bench"
path = "src/bin/research/algebraic-codebook-bench.rs"
required-features = ["experimental", "cli"]
[[bin]]
name = "private-query-bench"
path = "src/bin/research/private-query-bench.rs"
required-features = ["private-search"]
[[bin]]
name = "private-rank-bench"
path = "src/bin/research/private-rank-bench.rs"
required-features = ["private-search", "cli"]
[profile.release]
lto = true
codegen-units = 1
strip = "debuginfo"
opt-level = 3
[[example]]
name = "vector_glove_diagnosis"
required-features = ["experimental"]
[[example]]
name = "batched_vector_search"
required-features = ["experimental-batch-pool"]
[[example]]
name = "vector_discovery_diagnosis"
required-features = ["experimental", "sha2"]
[[bin]]
name = "vector-glove-diagnosis"
path = "benchmarks/public/vector_glove_diagnosis.rs"
required-features = ["experimental"]
[[bin]]
name = "vector-glove-development"
path = "benchmarks/public/vector_glove_development.rs"
required-features = ["experimental"]
[profile.dist]
inherits = "release"
strip = "symbols"
[[bench]]
name = "intersection_kernels"
harness = false
[[bin]]
name = "encoder-eval"
path = "src/bin/research/encoder-eval.rs"
[[bin]]
name = "operand-retriever"
path = "src/bin/research/operand-retriever.rs"
required-features = ["experimental"]
[[bin]]
name = "forget-experiment"
path = "src/bin/research/forget-experiment.rs"
required-features = ["experimental"]
[[bin]]
name = "ann-failure-map"
path = "src/bin/research/ann-failure-map.rs"
required-features = ["experimental", "cli"]
[[bin]]
name = "vibe-rotation"
path = "src/bin/research/vibe-rotation.rs"
required-features = ["experimental", "cli"]
[[bin]]
name = "qag-diagnose"
path = "src/bin/research/qag-diagnose.rs"
required-features = ["experimental", "cli"]
[[example]]
name = "sparse_composition"
required-features = ["experimental"]
[[example]]
name = "qgraph_build_profile"
required-features = ["experimental"]
[[example]]
name = "encoder_version_probe"
required-features = ["experimental", "cli"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(fuzzing)"] }
[[bench]]
name = "vector_updates"
harness = false
[[bin]]
name = "sparse-bench"
path = "src/bin/research/sparse-bench.rs"
required-features = ["cli"]
[[bin]]
name = "memory-api-lme"
path = "src/bin/research/memory-api-lme.rs"
required-features = ["cli"]
[[bin]]
name = "memory-api-bench"
path = "src/bin/research/memory-api-bench.rs"
required-features = ["cli"]
[[bin]]
name = "warm-workload"
path = "src/bin/research/warm-workload.rs"
required-features = ["cli"]
[[bin]]
name = "durability-driver"
path = "src/bin/research/durability-driver.rs"
required-features = ["cli"]
[[bin]]
name = "document-search-bench"
path = "src/bin/research/document-search-bench.rs"
required-features = ["cli"]
[[example]]
name = "compaction_updates"
required-features = ["cli"]
[[example]]
name = "document_competition"
required-features = ["cli"]
[[example]]
name = "document_operations"
required-features = ["cli"]
[[bench]]
name = "ingest_alloc"
harness = false
[[bench]]
name = "query_alloc"
harness = false
[[bin]]
name = "amp-decode"
path = "src/bin/research/amp-decode.rs"
[[bin]]
name = "base-residual"
path = "src/bin/research/base-residual.rs"
[[bin]]
name = "bilinear-readout"
path = "src/bin/research/bilinear-readout.rs"
[[bin]]
name = "binding-baselines"
path = "src/bin/research/binding-baselines.rs"
[[bin]]
name = "binding-discriminator"
path = "src/bin/research/binding-discriminator.rs"
[[bin]]
name = "bloom-wall"
path = "src/bin/research/bloom-wall.rs"
[[bin]]
name = "capacity-campaign"
path = "src/bin/research/capacity-campaign.rs"
[[bin]]
name = "fixed-point-holographic"
path = "src/bin/research/fixed-point-holographic.rs"
[[bin]]
name = "warm-research-bench"
path = "src/bin/research/warm-research-bench.rs"
[[bin]]
name = "warm-stress"
path = "src/bin/research/warm-stress.rs"
[[bin]]
name = "kernel-capacity-sweep"
path = "src/bin/research/kernel-capacity-sweep.rs"
[[bin]]
name = "kernel-load-curve"
path = "src/bin/research/kernel-load-curve.rs"
[[bin]]
name = "noisy-retrieval"
path = "src/bin/research/noisy-retrieval.rs"
[[bin]]
name = "pinv-memory"
path = "src/bin/research/pinv-memory.rs"
[[bin]]
name = "resonator-bundle"
path = "src/bin/research/resonator-bundle.rs"
[[bin]]
name = "resonator-cleanup"
path = "src/bin/research/resonator-cleanup.rs"
[[bin]]
name = "resonator-factorize"
path = "src/bin/research/resonator-factorize.rs"
[[bin]]
name = "resonator-sweep"
path = "src/bin/research/resonator-sweep.rs"
[[bin]]
name = "ridge-memory"
path = "src/bin/research/ridge-memory.rs"