[package]
name = "avocado-core"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Core engine for AvocadoDB - deterministic context compilation for AI agents"
readme = "../README.md"

# Exclude cached model files from crates.io package
exclude = [".fastembed_cache/", "*.onnx", "*.bin"]

[dependencies]
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
rusqlite = { workspace = true }
reqwest = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
sha2 = { workspace = true }
parking_lot = { workspace = true }
log = { workspace = true }
tiktoken-rs = { workspace = true }
# HNSW for fast approximate nearest neighbor search (Phase 2)
hnsw_rs = "0.3"
# Bincode for fast binary serialization of index metadata
bincode = "1.3"
# Pure Rust embeddings using fastembed (ONNX-based, no Python required)
# Use rustls for hf-hub to minimize native TLS dependencies
fastembed = { version = "5.4.0", default-features = false, features = ["hf-hub-rustls-tls", "ort-download-binaries"] }

[dev-dependencies]
tokio-test = "0.4"
criterion = { workspace = true }
tempfile = "3.8"
libc = "0.2"

[[bench]]
name = "session_bench"
harness = false

[[bench]]
name = "warm_cold_bench"
harness = false
