Esdieff documentation
Esdieff is a command-line toolkit and Rust library for connected-device models written in Semantic Definition Format, the SDF of IETF RFC 9880. It checks models, shows what a composed interface contains, compares revisions and turns model rules into test values. Every operation runs offline on the files you supply.
Start here
- Install and try a model Install Esdieff, run the supplied thermostat model and read your first generated values.
- Inspect and check a model Supply model files and shared definitions, run the checks and follow each finding back to its source.
- Compare two revisions See which changes between two revisions break the apps that use a device, and acknowledge the ones you intend.
- Test values against a model Check single samples, generate boundary and invalid values and check a log of recorded values in one run.
Guides
The guides walk through one task each with real commands and their output.
- Compose and edit models builds a new
sdfThingfrom reusable definitions and makes repeatable edits to an existing document. - Repeat checks and share reports saves checks as plans, checks whole directories and brings results into automation with JSON, SARIF and Markdown.
- Use the Rust library embeds the same checking, inspection and comparison in your own program.
Reference
The reference pages are the contracts behind each command. They state what an operation promises, what its report contains and where its limits lie.
- Workflow and report contract covers the shared report envelope, exit statuses and the command-line rules.
- Supplied source documents explains how supplied files become a catalogue and how source and effective views differ.
- Repeatable catalogue checks, Check a local model collection and Pinned document acquisition describe the ways to bring documents in.
- Model meaning assessment and its subpages define what each assessment level checks.
- Selected samples, Generated values and Recorded traces cover value checking.
- Composed sdfThing authoring, Authored-quality editing and Revision comparison cover changing and comparing models.
Design
The domain language defines the terms the reports and contracts use, such as catalogue, effective definition and breaking change. The architecture decisions record why Esdieff behaves as it does, from exact numbers to client-side revision comparison.