fathomdb-cli 0.8.22

FathomDB CLI — operator and diagnostics binary (fathomdb doctor, fathomdb export, ...).
Documentation
[package]
name = "fathomdb-cli"
description = "FathomDB CLI — operator and diagnostics binary (fathomdb doctor, fathomdb export, ...)."
# 0.8.20 Slice 39 (R-20-DOC) — see the fathomdb facade manifest for the rationale
# behind `readme` being explicit and `categories` being absent (HITL seq-198).
readme = "README.md"
keywords = ["cli", "database", "sqlite", "diagnostics", "embedded"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

[lib]
path = "src/lib.rs"

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

# 0.7.2 PR-7 — perf regression detector. Reads dev/perf-history/, groups by
# (ac_id, n), flags the latest run vs the rolling median of prior runs.
# See dev/design/perf-regression-detection.md.
[[bin]]
name = "perf-regression-check"
path = "src/bin/perf-regression-check.rs"

[dependencies]
clap = { version = "4.5", features = ["derive"] }
# The CLI IS the operator substrate (`recover`/`doctor`), so it enables the
# `operator` feature to reach the recovery/operator seam that Slice 27 fix-1
# gates off the default `fathomdb` facade.
fathomdb = { workspace = true, features = ["operator"] }
fathomdb-embedder.workspace = true
serde = { version = "1", features = ["derive"] }
serde_json = "1"

[features]
default = []
# EU-5b — enable the `fathomdb doctor warm-cache` subcommand to actually
# invoke the default-embedder loader. Without the feature, the subcommand
# still parses but reports that the binary was built without
# `default-embedder` support.
default-embedder = ["fathomdb-embedder/default-embedder"]

[dev-dependencies]
# `doctor_orphan_provenance` must fabricate the legacy/corrupt canonical row
# shapes the erasure verbs cannot reach (NULL `source_id`), which no supported
# write path can produce. Raw SQL is the only way to build that fixture, and
# design §3 Rule 1 requires erasure witnesses to assert on RAW table contents.
rusqlite = { version = "0.40", features = ["bundled", "fallible_uint"] }
tempfile = "3"