Rulebearing Playground Coverage Schemas GitHub

ADR-0002: Rust as the implementation language, one static binary

Context

The tool must run inside a TypeScript pipeline, a .NET pipeline and a Python pipeline, and inside an agent's Stop hook in under two seconds. The three candidate languages were Rust, C# with NativeAOT, and TypeScript by extending dependency-cruiser. The decisive facts from the design's comparison table:

Decision

Rulebearing is written in Rust as a Cargo workspace producing one static binary, rulebearing, with Node (napi-rs), NuGet and pip wrappers over that binary. The .NET metadata reader is written in Rust behind the extractor boundary, subject to the fallback in ADR-0003.

Consequences

Alternatives considered