plugmem-core 0.1.4

plugmem engine: data model, temporal facts, indexes (BM25, graph, time, vectors incl. HNSW), hybrid recall, snapshot/journal.
Documentation
[package]
name = "plugmem-core"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "plugmem engine: data model, temporal facts, indexes (BM25, graph, time, vectors incl. HNSW), hybrid recall, snapshot/journal."
keywords = ["memory", "search", "bm25", "llm", "embeddings"]
categories = ["database-implementations", "artificial-intelligence", "text-processing", "no-std", "wasm"]

[dependencies]
plugmem-arena = { workspace = true }
thiserror = { workspace = true }
xxhash-rust = { workspace = true }
serde = { workspace = true, optional = true }
hashbrown = { workspace = true }
unicode-segmentation = { workspace = true }
unicode-normalization = { workspace = true }
libm = { workspace = true }

# Gated off wasm targets: proptest's harness (via wait-timeout) does not
# compile there, and `cargo build --examples/--benches` for wasm would pull
# dev-deps in.
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
proptest = { workspace = true }
criterion = { workspace = true }
insta = { workspace = true }
plugmem-testgen = { workspace = true }
serde_json = { workspace = true }

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

[features]
counters = ["plugmem-arena/counters"]
# Optional serde Serialize/Deserialize on the public data types. Off by default;
# forwards to plugmem-arena's serde so the re-exported ids (FactId/TermId/BlobId)
# serialize too. Borrowed input types (RememberInput/RecallQuery/LinkInput) are
# Serialize-only — they hold `&str`/`&[&str]` that cannot be deserialized owned.
serde = ["dep:serde", "plugmem-arena/serde"]

[lints]
workspace = true

# A library / internal tool, not a shipped binary — excluded from cargo-dist releases.
[package.metadata.dist]
dist = false