[package]
edition = "2021"
rust-version = "1.89"
name = "warm-rust"
version = "0.6.5"
authors = ["WritersLogic, Inc. <david@writerslogic.com>"]
build = "build.rs"
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",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
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."
homepage = "https://writerslogic.com/warm"
documentation = "https://docs.rs/warm-rust"
readme = "README.md"
keywords = [
"vector-database",
"vector-search",
"full-text-search",
"agent-memory",
"rag",
]
categories = [
"database-implementations",
"text-processing",
"algorithms",
"data-structures",
"science",
]
license = "Apache-2.0"
repository = "https://github.com/writerslogic/warm"
[features]
cli = ["dep:clap"]
conversation-memory = ["sha2"]
default = []
experimental = []
experimental-batch-pool = ["experimental"]
experimental-build-search = ["experimental"]
experimental-neighbor-admission = ["experimental"]
experimental-query-x4 = ["experimental"]
local-embed = [
"dep:tokenizers",
"sha2",
"dep:libm",
]
local-embed-download = [
"local-embed",
"ureq",
]
local-models = [
"dep:candle-core",
"dep:candle-nn",
"dep:candle-transformers",
"dep:tokenizers",
"sha2",
]
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",
]
mimalloc = ["dep:mimalloc"]
node-api = [
"napi",
"napi-derive",
"tokio",
"tokio/rt",
"napi-build",
"dep:ts-rs",
]
private-search = [
"zeroize",
"rand/chacha",
]
provenance = [
"security",
"dep:parking_lot",
"coset",
"ciborium",
"bs58",
"multibase",
"base64",
"dep:serde_json_canonicalizer",
"dep:flate2",
"dep:http",
]
provenance-scitt = [
"provenance",
"ureq",
]
python = [
"pyo3",
"dep:numpy",
]
security = [
"ed25519-dalek",
"zeroize",
"aes-gcm",
"aes-gcm/zeroize",
"argon2",
"sha2",
]
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",
]
[lib]
name = "writerslogic_warm"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "algebraic-codebook-bench"
path = "src/bin/research/algebraic-codebook-bench.rs"
required-features = [
"experimental",
"cli",
]
[[bin]]
name = "amp-decode"
path = "src/bin/research/amp-decode.rs"
[[bin]]
name = "ann-failure-map"
path = "src/bin/research/ann-failure-map.rs"
required-features = [
"experimental",
"cli",
]
[[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 = "block-recovery-test"
path = "src/bin/research/block-recovery-test.rs"
required-features = ["experimental"]
[[bin]]
name = "bloom-wall"
path = "src/bin/research/bloom-wall.rs"
[[bin]]
name = "bundle-subset-sweep"
path = "src/bin/research/bundle-subset-sweep.rs"
required-features = ["experimental"]
[[bin]]
name = "capacity-campaign"
path = "src/bin/research/capacity-campaign.rs"
[[bin]]
name = "conversation-eval"
path = "src/bin/research/conversation-eval.rs"
required-features = [
"conversation-memory",
"cli",
]
[[bin]]
name = "document-search-bench"
path = "src/bin/research/document-search-bench.rs"
required-features = ["cli"]
[[bin]]
name = "durability-driver"
path = "src/bin/research/durability-driver.rs"
required-features = ["cli"]
[[bin]]
name = "embed-store-bench"
path = "benchmarks/embedding/embed_store_bench.rs"
required-features = [
"local-embed",
"cli",
]
[[bin]]
name = "encoder-eval"
path = "src/bin/research/encoder-eval.rs"
[[bin]]
name = "fixed-point-holographic"
path = "src/bin/research/fixed-point-holographic.rs"
[[bin]]
name = "forget-experiment"
path = "src/bin/research/forget-experiment.rs"
required-features = ["experimental"]
[[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 = "memory-api-bench"
path = "src/bin/research/memory-api-bench.rs"
required-features = ["cli"]
[[bin]]
name = "memory-api-lme"
path = "src/bin/research/memory-api-lme.rs"
required-features = ["cli"]
[[bin]]
name = "noisy-retrieval"
path = "src/bin/research/noisy-retrieval.rs"
[[bin]]
name = "operand-retriever"
path = "src/bin/research/operand-retriever.rs"
required-features = ["experimental"]
[[bin]]
name = "pinv-memory"
path = "src/bin/research/pinv-memory.rs"
[[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",
]
[[bin]]
name = "public-bench"
path = "src/bin/research/public-bench.rs"
required-features = [
"cli",
"mimalloc",
]
[[bin]]
name = "qag-diagnose"
path = "src/bin/research/qag-diagnose.rs"
required-features = [
"experimental",
"cli",
]
[[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"
[[bin]]
name = "route-sweep"
path = "src/bin/research/route-sweep.rs"
[[bin]]
name = "security-probe"
path = "src/bin/research/security-probe.rs"
required-features = [
"security",
"server",
]
[[bin]]
name = "sparse-bench"
path = "src/bin/research/sparse-bench.rs"
required-features = ["cli"]
[[bin]]
name = "vector-glove-development"
path = "benchmarks/public/vector_glove_development.rs"
required-features = ["experimental"]
[[bin]]
name = "vector-glove-diagnosis"
path = "benchmarks/public/vector_glove_diagnosis.rs"
required-features = ["experimental"]
[[bin]]
name = "vibe-rotation"
path = "src/bin/research/vibe-rotation.rs"
required-features = [
"experimental",
"cli",
]
[[bin]]
name = "warm-admin"
path = "src/bin/warm-admin.rs"
required-features = ["cli"]
[[bin]]
name = "warm-benchmark-suite"
path = "src/bin/research/warm-benchmark-suite.rs"
required-features = ["experimental"]
[[bin]]
name = "warm-embed"
path = "src/bin/warm-embed.rs"
required-features = [
"local-embed",
"cli",
]
[[bin]]
name = "warm-eval"
path = "src/bin/warm-eval.rs"
[[bin]]
name = "warm-format"
path = "src/bin/warm-format.rs"
required-features = ["cli"]
[[bin]]
name = "warm-mcp"
path = "src/bin/warm-mcp.rs"
required-features = ["mcp"]
[[bin]]
name = "warm-research-bench"
path = "src/bin/research/warm-research-bench.rs"
[[bin]]
name = "warm-scaling"
path = "src/bin/research/warm-scaling.rs"
required-features = ["experimental"]
[[bin]]
name = "warm-server"
path = "src/bin/warm-server/main.rs"
required-features = ["server"]
[[bin]]
name = "warm-stress"
path = "src/bin/research/warm-stress.rs"
[[bin]]
name = "warm-workload"
path = "src/bin/research/warm-workload.rs"
required-features = ["cli"]
[[example]]
name = "batched_vector_search"
path = "examples/batched_vector_search.rs"
required-features = ["experimental-batch-pool"]
[[example]]
name = "compaction_updates"
path = "examples/compaction_updates.rs"
required-features = ["cli"]
[[example]]
name = "competitive_text"
path = "examples/competitive_text.rs"
[[example]]
name = "demo-offline-agent"
path = "examples/demo-offline-agent/main.rs"
[[example]]
name = "document_competition"
path = "examples/document_competition.rs"
required-features = ["cli"]
[[example]]
name = "document_operations"
path = "examples/document_operations.rs"
required-features = ["cli"]
[[example]]
name = "emit_w3c_credential"
path = "examples/emit_w3c_credential.rs"
required-features = ["provenance"]
[[example]]
name = "encoder_version_probe"
path = "examples/encoder_version_probe.rs"
required-features = [
"experimental",
"cli",
]
[[example]]
name = "memory_write_bench"
path = "examples/memory_write_bench.rs"
[[example]]
name = "organizational_knowledge"
path = "examples/organizational_knowledge.rs"
[[example]]
name = "purge_bench"
path = "examples/purge_bench.rs"
[[example]]
name = "qgraph_build_profile"
path = "examples/qgraph_build_profile.rs"
required-features = ["experimental"]
[[example]]
name = "sparse_composition"
path = "examples/sparse_composition.rs"
required-features = ["experimental"]
[[example]]
name = "sparse_sweep"
path = "examples/sparse_sweep.rs"
[[example]]
name = "vector_discovery_diagnosis"
path = "examples/vector_discovery_diagnosis.rs"
required-features = [
"experimental",
"sha2",
]
[[example]]
name = "vector_glove_diagnosis"
path = "examples/vector_glove_diagnosis.rs"
required-features = ["experimental"]
[[example]]
name = "verify_cogmem_sample"
path = "examples/verify_cogmem_sample.rs"
required-features = ["provenance"]
[[example]]
name = "zero_trust_demo"
path = "examples/zero_trust_demo.rs"
required-features = ["security"]
[[test]]
name = "allocation_bounds"
path = "tests/allocation_bounds.rs"
[[test]]
name = "chunking_proptest"
path = "tests/chunking_proptest.rs"
[[test]]
name = "committed_sidecars"
path = "tests/committed_sidecars.rs"
[[test]]
name = "conversation_context"
path = "tests/conversation_context.rs"
[[test]]
name = "conversation_memory"
path = "tests/conversation_memory.rs"
[[test]]
name = "conversation_models"
path = "tests/conversation_models.rs"
[[test]]
name = "document_checkpoint"
path = "tests/document_checkpoint.rs"
[[test]]
name = "document_competition"
path = "tests/document_competition.rs"
[[test]]
name = "document_dense"
path = "tests/document_dense.rs"
[[test]]
name = "documents"
path = "tests/documents.rs"
[[test]]
name = "embed_store"
path = "tests/embed_store.rs"
[[test]]
name = "enc_text"
path = "tests/enc_text.rs"
[[test]]
name = "encoder_versions"
path = "tests/encoder_versions.rs"
[[test]]
name = "forget_equivalence"
path = "tests/forget_equivalence.rs"
[[test]]
name = "format_crash"
path = "tests/format_crash.rs"
[[test]]
name = "format_golden"
path = "tests/format_golden.rs"
[[test]]
name = "format_layout"
path = "tests/format_layout.rs"
[[test]]
name = "format_upgrade_regressions"
path = "tests/format_upgrade_regressions.rs"
[[test]]
name = "ingest_encode"
path = "tests/ingest_encode.rs"
[[test]]
name = "ingest_postings"
path = "tests/ingest_postings.rs"
[[test]]
name = "lexical_count"
path = "tests/lexical_count.rs"
[[test]]
name = "memory_api"
path = "tests/memory_api.rs"
[[test]]
name = "memory_api_server"
path = "tests/memory_api_server.rs"
[[test]]
name = "native_memory_workflow"
path = "tests/native_memory_workflow.rs"
[[test]]
name = "phase_resonator_regression"
path = "tests/phase_resonator_regression.rs"
[[test]]
name = "purge"
path = "tests/purge.rs"
[[test]]
name = "qgraph_prefetch"
path = "tests/qgraph_prefetch.rs"
[[test]]
name = "quantized_ivf"
path = "tests/quantized_ivf.rs"
[[test]]
name = "reliability"
path = "tests/reliability.rs"
[[test]]
name = "rss_embeddings"
path = "tests/rss_embeddings.rs"
[[test]]
name = "scitt_receipt_interop"
path = "tests/scitt_receipt_interop.rs"
[[test]]
name = "server"
path = "tests/server.rs"
[[test]]
name = "server_abuse"
path = "tests/server_abuse.rs"
[[test]]
name = "server_ann"
path = "tests/server_ann.rs"
[[test]]
name = "server_api"
path = "tests/server_api.rs"
[[test]]
name = "server_ops"
path = "tests/server_ops.rs"
[[test]]
name = "store_lifecycle"
path = "tests/store_lifecycle.rs"
[[test]]
name = "vertex_index_bare_path"
path = "tests/vertex_index_bare_path.rs"
[[test]]
name = "wrong_passphrase"
path = "tests/wrong_passphrase.rs"
[[bench]]
name = "ingest_alloc"
path = "benches/ingest_alloc.rs"
harness = false
[[bench]]
name = "intersection_kernels"
path = "benches/intersection_kernels.rs"
harness = false
[[bench]]
name = "query_alloc"
path = "benches/query_alloc.rs"
harness = false
[[bench]]
name = "vector_updates"
path = "benches/vector_updates.rs"
harness = false
[[bench]]
name = "warm_benchmark"
path = "benches/warm_benchmark.rs"
harness = false
[dependencies.aes-gcm]
version = "0.11"
optional = true
[dependencies.anyhow]
version = "1.0"
[dependencies.argon2]
version = "0.6"
optional = true
[dependencies.axum]
version = "0.8"
features = [
"http1",
"tokio",
"json",
"query",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.23"
optional = true
[dependencies.bincode]
version = "2.0"
features = ["serde"]
[dependencies.bs58]
version = "0.5"
optional = true
[dependencies.bytemuck]
version = "1"
[dependencies.bytes]
version = "1"
optional = true
[dependencies.candle-core]
version = "0.11"
optional = true
[dependencies.candle-nn]
version = "0.11"
optional = true
[dependencies.candle-transformers]
version = "0.11"
optional = true
[dependencies.ciborium]
version = "0.2"
optional = true
[dependencies.clap]
version = "4.4"
features = [
"derive",
"env",
]
optional = true
[dependencies.coset]
version = "0.4"
optional = true
[dependencies.crc32fast]
version = "1.3"
[dependencies.ed25519-dalek]
version = "3"
features = ["rand_core"]
optional = true
[dependencies.flate2]
version = "1.1"
optional = true
[dependencies.foldhash]
version = "0.2"
[dependencies.futures-util]
version = "0.3"
optional = true
default-features = false
[dependencies.http]
version = "1"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1"
features = [
"server",
"http1",
"http2",
]
optional = true
default-features = false
[dependencies.hyper-util]
version = "0.1"
features = [
"server-auto",
"server-graceful",
"service",
"tokio",
"http1",
"http2",
]
optional = true
default-features = false
[dependencies.libc]
version = "0.2"
[dependencies.libm]
version = "0.2"
optional = true
[dependencies.lz4_flex]
version = "0.14"
[dependencies.memmap2]
version = "0.9"
[dependencies.mimalloc]
version = "0.1"
optional = true
default-features = false
[dependencies.multibase]
version = "0.9"
optional = true
[dependencies.nalgebra]
version = "0.35"
features = ["serde-serialize"]
[dependencies.napi]
version = "3.9"
features = [
"async",
"serde-json",
]
optional = true
[dependencies.napi-derive]
version = "3.5"
optional = true
[dependencies.numpy]
version = "0.30"
optional = true
[dependencies.parking_lot]
version = "0.12"
features = ["arc_lock"]
optional = true
[dependencies.pyo3]
version = "0.30"
features = [
"extension-module",
"abi3-py39",
]
optional = true
[dependencies.rand]
version = "0.10"
[dependencies.rayon]
version = "1.8"
[dependencies.rmcp]
version = "3.7"
features = [
"server",
"client",
"transport-io",
"transport-child-process",
"transport-streamable-http-server",
]
optional = true
default-features = false
[dependencies.rust-stemmers]
version = "1.2.0"
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.schemars]
version = "1.2"
features = ["derive"]
optional = true
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0"
features = ["float_roundtrip"]
[dependencies.serde_json_canonicalizer]
version = "0.4.1"
optional = true
[dependencies.sha2]
version = "0.11"
optional = true
[dependencies.subtle]
version = "2.6"
optional = true
[dependencies.tar]
version = "0.4"
optional = true
default-features = false
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokenizers]
version = "0.23"
features = ["fancy-regex"]
optional = true
default-features = false
[dependencies.tokio]
version = "1"
optional = true
[dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
optional = true
default-features = false
[dependencies.tokio-util]
version = "0.7"
optional = true
[dependencies.tower-service]
version = "0.3"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.ts-rs]
version = "12"
features = ["serde-compat"]
optional = true
[dependencies.ureq]
version = "3"
optional = true
[dependencies.zeroize]
version = "1"
features = ["derive"]
optional = true
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.proptest]
version = "1.0"
[dev-dependencies.rcgen]
version = "0.14"
features = [
"crypto",
"ring",
"pem",
]
default-features = false
[dev-dependencies.tempfile]
version = "3"
[build-dependencies.napi-build]
version = "2.2"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.candle-core]
version = "0.11"
features = ["metal"]
optional = true
[target.'cfg(target_os = "macos")'.dependencies.candle-nn]
version = "0.11"
features = ["metal"]
optional = true
[target.'cfg(target_os = "macos")'.dependencies.candle-transformers]
version = "0.11"
features = ["metal"]
optional = true
[target."cfg(warm_cuda)".dependencies.candle-core]
version = "0.11"
features = ["cuda"]
optional = true
[target."cfg(warm_cuda)".dependencies.candle-nn]
version = "0.11"
features = ["cuda"]
optional = true
[target."cfg(warm_cuda)".dependencies.candle-transformers]
version = "0.11"
features = ["cuda"]
optional = true
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]
[profile.dist]
inherits = "release"
strip = "symbols"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = "debuginfo"