flowrs-engine/crates/flowrs-instruments/Cargo.toml
flowRS 2b6f30d348 flowRS engine, cut from flowRS f907e0756a7c
Built alone from an empty CARGO_HOME, its tests passed, and flowrsc checked, ran and exported a
document from the conformance corpus; the export built alone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-10 08:54:33 -05:00

50 lines
2.6 KiB
TOML

[package]
name = "flowrs-instruments"
version.workspace = true
edition.workspace = true
publish.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
description = "Bench-instrument capability model for FlowRS: constraint-carrying descriptors (the piece IVI lacked) that validate an instrument config offline, then compile it to a SCPI command sequence — the Rust-native replacement for VISA/IVI driver stacks."
[lib]
crate-type = ["rlib"]
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
# The audit log's hash chain and the proposal hash an approval binds to. Pure Rust, so the
# browser can verify a chain with the same code that wrote it. Already in the lock file
# (flowrs-mcp uses it for the code trust list).
sha2 = "0.11"
# The catalogue entry's regulatory status (a cleared device, a vendor's non-device
# statement, or unknown), the type every hardware catalogue in flowRS shares.
flowrs-schemas = { path = "../flowrs-schemas", features = ["serde"] }
# The simulated bench (`sim`): simulation files are TOML (LabCraft's format) or pyvisa-sim's
# YAML. Both readers are pure Rust, already in the lock (flowrs-critic and flowrs-ingest use
# them) and in the browser's bundle (flowrs-ingest is), so the editor reads a bench too.
toml = { version = "1", default-features = false, features = ["parse", "std", "serde"] }
serde_yaml_ng = "0.10"
# A scope's sine (`sim::wave`): libm's, ported, the same bits in the browser and natively,
# so a simulated capture is reproducible everywhere, as a quantity's noise is.
flowrs-math = { path = "../flowrs-math" }
# The hybrid signatures (`hybrid`: Ed25519 and ML-DSA-65, FIPS 204) on approval policies
# and audit checkpoints, and the random lease tokens the shared store mints. Native only
# and off by default (the browser shows what the server verified). aws-lc-rs: ML-DSA is
# stable API in 1.18, inside AWS-LC's FIPS 140-3 validation, and already in the lock as
# rustls's provider (flowrs-tls). It replaces ring, which has no ML-DSA.
aws-lc-rs = { version = "1.18.2", default-features = false, features = ["aws-lc-sys"], optional = true }
[features]
default = []
# Signing and verifying policies (`policy::crypto`) and audit checkpoints, random tokens.
# flowrs-mcp and flowrs-server turn it on.
crypto = ["dep:aws-lc-rs"]
[dev-dependencies]
# `cfg(kani)` is set by `cargo kani`, never by cargo itself, so rustc does not know the
# name. Declared so the proofs in `lifecycle.rs` do not warn in an ordinary build.
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }