vyre-spec 0.1.1

Frozen data contracts for vyre — OpSpec, AlgebraicLaw, Category, IntrinsicTable
Documentation
  • Coverage
  • 100%
    229 out of 229 items documented22 out of 22 items with examples
  • Size
  • Source code size: 94.2 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 11.31 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 1m 5s Average build duration of successful builds.
  • all releases: 50s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • santhsecurity

vyre-spec

Frozen data contracts for the vyre GPU compute IR.

What this crate is

vyre-spec is the leaf crate of the vyre ecosystem. It contains only frozen data types: IR scalar and operation types, algebraic laws, conformance categories, verification evidence, engine invariants, and the I1..I15 intrinsic catalog. Zero dependencies. Every vyre consumer transitively depends on this crate, so backend vendors may depend on vyre-spec alone to prove conformance without pulling in the compiler or the conform runtime.

What you get

  • Category — operation classification (A, C, etc.)
  • AlgebraicLaw — declarative laws (commutative, associative, identity, distributive, monotonic, bounded, custom predicates, and more)
  • OpSpec — frozen operation specification
  • OpSignature — input/output type signature for an IR operation
  • DataType — IR types (U32, I32, U64, Vec2U32, Vec4U32, Bool, Bytes, F32)
  • Convention — calling conventions for op dispatch
  • IntrinsicTable — hardware intrinsic lookup tables
  • EngineInvariant / Invariant / InvariantId — engine-level invariant declarations and the I1..I15 catalog
  • Verification — verification result types
  • Layer — conformance layer declarations (L0L8)
  • BackendAvailability — per-backend availability predicates
  • GoldenSample / KatVector / AdversarialInput — test vectors and hostile witnesses
  • BinOp / UnOp / AtomicOp — operation descriptors
  • LawCatalog / LAW_CATALOG — static registry of all declared laws
  • INVARIANTS / by_id / by_category — static invariant registry and lookups

Stability

All public enums are marked #[non_exhaustive]. The surface of this crate is frozen under a 5-year stability contract. Any breaking change to a public type or exported constant requires a major version bump. Patch and minor releases add only new variants, new constants, or documentation fixes.

Usage

use vyre_spec::{AlgebraicLaw, DataType, OpSignature};

let sig = OpSignature {
    inputs: vec![DataType::U32, DataType::U32],
    output: DataType::U32,
};
let law = AlgebraicLaw::Commutative;
assert_eq!(sig.output, DataType::U32);

See also

License

MIT OR Apache-2.0