[package]
edition = "2021"
rust-version = "1.83"
name = "dsfb-robotics"
version = "0.1.0"
authors = ["Riaan de Beer <riaan@invariantforge.net>"]
build = false
include = [
"src/**",
"tests/**",
"examples/**",
"benches/**",
"scripts/**",
"docs/**",
"audit/**",
"data/slices/**",
"colab/dsfb_robotics_reproduce.ipynb",
"colab/README.md",
"/Cargo.toml",
"/README.md",
"/LICENSE",
"/NOTICE",
"/CITATION.cff",
"/CHANGELOG.md",
"/ARCHITECTURE.md",
"/SECURITY.md",
"/SAFETY.md",
"/REPRODUCE.md",
"/rust-toolchain.toml",
"/deny.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "DSFB Structural Semiotics Engine for Robotics Health Monitoring — a deterministic, non-intrusive observer layer that reads the residuals existing robot control, kinematic identification, and whole-body balance observers already compute, and structures them into a human-readable grammar of typed episodes. Read-only augmentation, not replacement, of incumbent PHM / FDD / MPC / observer pipelines."
homepage = "https://github.com/infinityabundance/dsfb"
documentation = "https://docs.rs/dsfb-robotics"
readme = "README.md"
keywords = [
"robotics",
"kinematics",
"balancing",
"phm",
"no-std",
]
categories = [
"embedded",
"science::robotics",
"no-std",
]
license = "Apache-2.0"
repository = "https://github.com/infinityabundance/dsfb/tree/main/crates/dsfb-robotics"
[features]
alloc = []
default = []
experimental = []
paper_lock = [
"std",
"serde",
]
real_figures = [
"std",
"serde",
"dep:csv",
]
serde = [
"std",
"dep:serde",
"dep:serde_json",
]
std = ["alloc"]
[lib]
name = "dsfb_robotics"
path = "src/lib.rs"
[[bin]]
name = "paper-lock"
path = "src/main.rs"
required-features = [
"std",
"paper_lock",
]
[[example]]
name = "engine_smoke"
path = "examples/engine_smoke.rs"
[[example]]
name = "load_csv_emit_json"
path = "examples/load_csv_emit_json.rs"
[[example]]
name = "observer_callback"
path = "examples/observer_callback.rs"
[[test]]
name = "adapter_pipeline"
path = "tests/adapter_pipeline.rs"
[[test]]
name = "checksum_regression"
path = "tests/checksum_regression.rs"
[[test]]
name = "concurrency_observer"
path = "tests/concurrency_observer.rs"
[[test]]
name = "long_running_stability"
path = "tests/long_running_stability.rs"
[[test]]
name = "paper_lock_binary"
path = "tests/paper_lock_binary.rs"
[[test]]
name = "proptest_invariants"
path = "tests/proptest_invariants.rs"
[[test]]
name = "proptest_orthogonality"
path = "tests/proptest_orthogonality.rs"
[[test]]
name = "schema_validation"
path = "tests/schema_validation.rs"
[[bench]]
name = "paper_lock_throughput"
path = "benches/paper_lock_throughput.rs"
harness = false
required-features = [
"std",
"paper_lock",
]
[dependencies.csv]
version = "1"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.5"
features = ["cargo_bench_support"]
default-features = false
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[target."cfg(loom)".dev-dependencies.loom]
version = "0.7"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(kani)",
"cfg(loom)",
]
[profile.dev]
panic = "abort"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"