fathomdb-engine 0.8.0

FathomDB engine — embedded vector + JSON database core (storage, projection, ingest, query).
Documentation
[package]
name = "fathomdb-engine"
description = "FathomDB engine — embedded vector + JSON database core (storage, projection, ingest, query)."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

[dependencies]
fathomdb-embedder.workspace = true
fathomdb-embedder-api.workspace = true
fathomdb-query.workspace = true
fathomdb-schema.workspace = true
rusqlite = { version = "0.31", features = ["bundled"] }
jsonschema = { version = "0.18", default-features = false }
serde_json = "1"
sha2 = "0.10"
sqlite-vec = "=0.1.7"

[features]
default = []
# Slice 27 fix-1 (Q5=BIND-RUST, AC-074): the operator/recovery seam
# (rebuild_*, excise_source, dump_*, trace_source_ref, truncate_wal,
# verify_embedder, check_integrity, safe_export, recompute_mean + their
# operator-exclusive private helpers) is gated behind this feature so the
# DEFAULT engine surface is recovery-clean at the method level. Behavior is
# identical with the feature on (gate, not delete). `fathomdb-cli` enables it.
operator = []
# EU-5b: turning on this feature causes `EmbedderChoice::Default` to
# materialize a real `CandleBgeEmbedder` via the loader at `Engine::open`.
# Without it, `EmbedderChoice::Default` returns a typed `EmbedderError`
# rather than attempting a network fetch (preserves the no-network build
# closure per ADR-0.7.1-default-embedder-weight-fetch).
default-embedder = ["fathomdb-embedder/default-embedder"]

# The corpus-ingest example calls the operator-seam `trace_source_ref`, so it
# only builds when the `operator` feature is enabled (skipped on default builds).
[[example]]
name = "ingest_corpus"
required-features = ["operator"]

# Slice 27 fix-2: these integration-test targets exercise the operator/recovery
# `Engine` methods that fix-1 gated behind `operator`. They are PURE-operator
# (every `#[test]` calls a gated method), so the whole target is skipped on the
# default build and runs under `--features operator`. This makes
# `cargo test -p fathomdb-engine` (default) compile again without un-gating any
# method. (The mixed `pr2b_mean_recompute.rs` is NOT here — its non-operator
# carve-out test stays default-runnable via per-fn `#[cfg(feature = "operator")]`.)
[[test]]
name = "check_integrity"
required-features = ["operator"]

[[test]]
name = "dump_profile"
required-features = ["operator"]

[[test]]
name = "dump_row_counts"
required-features = ["operator"]

[[test]]
name = "dump_schema"
required-features = ["operator"]

[[test]]
name = "eu7_real_corpus_ac"
required-features = ["operator"]

[[test]]
name = "excise_source"
required-features = ["operator"]

[[test]]
name = "rebuild_projections"
required-features = ["operator"]

[[test]]
name = "rebuild_report"
required-features = ["operator"]

[[test]]
name = "rebuild_vec0"
required-features = ["operator"]

[[test]]
name = "safe_export"
required-features = ["operator"]

[[test]]
name = "trace_source_ref"
required-features = ["operator"]

[[test]]
name = "truncate_wal"
required-features = ["operator"]

[[test]]
name = "verify_embedder"
required-features = ["operator"]

[dev-dependencies]
libc = "0.2"
proptest = "1"
rusqlite = { version = "0.31", features = ["bundled"] }
serde_json = "1"
sha2 = "0.10"
tempfile = "3"