antigen 0.4.0-beta.1

Structural memory of failure-classes for Rust. Make implicit immunity explicit.
Documentation

antigen

Structural memory of failure-classes for Rust. Make implicit immunity explicit.

Status: Design phase — 0.0.1 reserves the namespace. Real macros, witness types, and structural recognition primitives are under active design at github.com/antigen-rs/antigen.

What this crate is (intended)

The core library of the antigen project. Will provide:

  • #[antigen(name = "...", fingerprint = "...")] — declare a named failure-class
  • #[presents(antigen)] — mark code as vulnerable to a known failure-class
  • #[immune(antigen, witness = ...)] — declare immunity with proof requirement
  • #[descended_from(...)] — propagate antigen markers through derivation

Together with the cargo-antigen extension, these primitives compose existing Rust ecosystem tools (clippy, proptest, kani, prusti) into a coherent immune-system surface for failure-class memory.

Why structural memory matters

When a bug is fixed, the test for THAT bug ships. But the failure-class the bug was an instance of — the family of cases sharing its structural shape — usually doesn't get captured. The lesson lives in commit messages, code comments, developer memory.

When a structurally-similar new type gets created later, none of the immunity transfers automatically.

Antigen makes failure-class memory structural and inheritable — declared in the type system, checked by tooling, propagated by composition.

What this is NOT

  • Not a documentation system. Documentation drifts; antigen declarations are checked by tooling.
  • Not a replacement for tests, lints, deprecations, or formal verification. Antigen composes them.
  • Not a logic-bug catcher. It catches named failure-classes; it does not detect novel logic errors.

Status

The published 0.0.1 reserves the crate name and signals intent. See the design documents for the active design — including the 8-class first-principles failure taxonomy and the biological-to-Rust constructs mapping.

License

Dual-licensed under MIT or Apache-2.0.