[package]
name = "thingd"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Core primitives for thingd, an object-shaped local memory engine for apps and agents."
readme = "README.md"
keywords = ["ai", "memory", "mcp", "database", "persistence"]
categories = ["database-implementations", "caching"]
exclude = ["examples/"]
[features]
default = ["persistent", "search"]
search = ["dep:tantivy"]
persistent = [
"dep:rocksdb",
"dep:chacha20poly1305",
"dep:getrandom",
"dep:hkdf",
"dep:hmac",
"dep:sha2",
]
vectors = []
connectors = ["dep:csv", "dep:sqlx", "dep:tokio"]
[dependencies]
rocksdb = { version = "0.24", default-features = false, optional = true }
tantivy = { version = "0.26.1", optional = true }
csv = { version = "1.4", optional = true }
chrono = "0.4.45"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "tls-rustls-ring", "postgres", "mysql"], optional = true }
tokio = { version = "1", features = ["rt", "macros"], optional = true }
chacha20poly1305 = { version = "0.10", optional = true }
getrandom = { version = "0.3", optional = true }
hkdf = { version = "0.12", optional = true }
hmac = { version = "0.12", optional = true }
sha2 = { version = "0.10", optional = true }
[dev-dependencies]
tempfile = "3.27.0"
[lib]
path = "src/lib.rs"
[lints]
workspace = true
[package.metadata.docs.rs]
features = ["persistent"]
rustdoc-args = ["--cfg", "docsrs"]