tritium-cli 1.1.0-rc.0

The `tritium` command-line tool: inspect GGUF files and list registered backends.
[package]
name = "tritium-cli"
description = "The `tritium` command-line tool: inspect GGUF files and list registered backends."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
readme = "README.md"
repository.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true

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

[dependencies]
tritium-format = { workspace = true }
tritium-runtime = { workspace = true }
# Used directly to render `DeviceCaps` in `list-backends`.
tritium-spec = { workspace = true }
# Linked so its backend self-registration is visible to `list-backends` and used by
# `generate` (which loads a model on the CPU backend via the runtime registry).
tritium-cpu = { workspace = true }
# The `generate` subcommand loads a model and decodes tokens through `ModelRunner`.
tritium-nn = { workspace = true }
tritium-train = { workspace = true, optional = true }
# Optional CUDA backend linkage for `report --backend cuda` / parity reports.
tritium-cuda = { workspace = true, optional = true }
tritium-quantize = { workspace = true }
tritium-salt = { workspace = true }
# `repack` converts ternary tensors at the trits level.
tritium-core = { workspace = true }
half = { workspace = true }
clap = { workspace = true }
anyhow = { workspace = true }
# `pull` fetches GGUFs from the HuggingFace hub (blocking, tiny footprint —
# already in-tree transitively via ort).
ureq = { version = "3.3", features = ["json"] }
serde = { workspace = true }
# `generate` reads input token IDs from a reproducible JSON file.
serde_json = { workspace = true }
blake3 = { workspace = true }
sha2 = { workspace = true }
# `report salt-model` mmaps each (possibly sharded) safetensors file so a 50GB+ master is
# never read fully into RAM.
memmap2 = { workspace = true }
# `report salt-model` quantizes the (independent) 2D tensors in parallel — a 27B sweep is
# minutes instead of an hour. Bounded pool keeps the transient f32 buffers in check.
rayon = { workspace = true }

[target.'cfg(target_os = "linux")'.dependencies]
libc = { version = "0.2", optional = true }

[dev-dependencies]
# `salt_model_cli` parses the report's JSON output to assert fidelity invariants.
serde_json = { workspace = true }
# Campaign sidecar tests exercise canonical Net2Wider receipt constants even when
# the optional CUDA feature (and its training dependency) is disabled.
tritium-train = { workspace = true }
# `fisher_quantize_cli` reads back the emitted SALT bundle to assert the Fisher sidecar drove
# plane allocation (plan 0039 step 4).
tritium-format = { workspace = true }

[features]
default = []
cuda = ["dep:tritium-cuda", "dep:tritium-train", "tritium-nn/cuda"]
nccl = ["cuda", "tritium-cuda/nccl", "dep:libc"]

[lints]
workspace = true