embeddenator-core 0.22.0

Sparse ternary VSA implementation for holographic data encoding - umbrella crate re-exporting all embeddenator components
[package]
name = "embeddenator-core"
version = "0.22.0"
edition = "2021"
authors = ["Tyler Zervas <tz-dev@vectorweight.com>"]
description = "Sparse ternary VSA implementation for holographic data encoding - umbrella crate re-exporting all embeddenator components"
license = "MIT"
repository = "https://github.com/tzervas/embeddenator-core"
homepage = "https://github.com/tzervas/embeddenator-core"
keywords = ["vsa", "holographic", "vector-symbolic", "ternary", "encoding"]
categories = ["encoding", "data-structures"]
documentation = "https://docs.rs/embeddenator-core"
readme = "README.md"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lib]
name = "embeddenator"
path = "src/lib.rs"
doctest = true

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

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

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

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

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

[[bin]]
name = "embeddenator"
path = "src/main.rs"

[dependencies]
# Embeddenator component libraries (path dependencies for local dev, version for crates.io)
embeddenator-vsa = { version = "0.21.0", path = "../embeddenator-vsa" }
embeddenator-retrieval = { version = "0.21.0", path = "../embeddenator-retrieval" }
embeddenator-fs = { version = "0.23.0", path = "../embeddenator-fs" }
embeddenator-interop = { version = "0.22.0", path = "../embeddenator-interop" }
embeddenator-io = { version = "0.21.0", path = "../embeddenator-io" }
embeddenator-obs = { version = "0.21.0", path = "../embeddenator-obs", features = ["tracing"] }
embeddenator-cli = { version = "0.21.0", path = "../embeddenator-cli" }

# External dependencies
clap = { version = "4.5", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3"
sha2 = "0.10"
rand = "0.9"
walkdir = "2.5"
# FUSE userspace filesystem (Linux/macOS only)
fuser = { version = "0.16", optional = true }
libc = "0.2"

[dev-dependencies]
tempfile = "3.13"
criterion = "0.8"
proptest = "1.4"

[features]
default = []
fuse = ["fuser"]
qa = []
soak-memory = []
simd = []

# Heavy invariant tests / aggressive randomized checks for ternary refactors.
ternary-refactor = []

# Balanced-ternary migration phases (testing gates)
#
# Enable these progressively as the ternary-native substrate replaces SparseVec
# internals. Each phase implies the previous phase and enables the heavy
# refactor invariant suite.
bt-phase-1 = ["ternary-refactor"]
bt-phase-2 = ["bt-phase-1"]
bt-phase-3 = ["bt-phase-2"]

# Convenience for CI/local: run everything currently implemented.
bt-migration = ["bt-phase-3"]

# These are referenced by cfg-gated test stubs; define them to avoid
# `unexpected cfg condition value` warnings when compiling tests.
proptest = []
afl = []

# Reserved for a future on-disk deterministic baseline codebook loader/generator.
baseline-codebook = []

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true