probat

Project principles

Own engines, pinned official rule sets, tests against reference validators, speed, and the MIT licence.

Own engines first

probat builds on Rust crates from barrierlab: HTML conformance, RELAX NG, Schematron and XPath. Missing capabilities — XPath 2.0, XSD validation — are added to those crates rather than replaced by a foreign engine.

Official rule sets, pinned

E-invoices are checked against the schemas and Schematron rules their publishers release. Each rule set has a versioned ID, and every report names the versions it used.

Tested against reference validators

A test corpus per format, the official conformance suites, fuzzing of every parser, and differential tests against the reference validators (the W3C Nu Html Checker, the KoSIT validator, the Peppol artefacts). The reference tools are test oracles only; probat users need no Java.

Fast by design

Cheap checks run first, expensive ones only when the format needs them. Rule sets are compiled once, files are checked in parallel, and the report includes the time each check took.

Licence

MIT.

Edit this page on GitHub