
Reference implementation. Sync and async validators, TypeScript type inference.
LIVR is a specification, so you need an implementation for your language. All of them use the same rules format and return the same error codes. The latest version of the specification is 2.0; the previous one was 0.4.

livrv2.12.1Reference implementation. Sync and async validators, TypeScript type inference.

Validator::LIVRv2.1
validator/livr
io.github.vlbaluk:validator-livrv2.0.2Returns the standard error codes, but wraps each one together with the invalid value: {"code": "REQUIRED", "fieldValue": …}.



Formerly Perl 6.


github.com/k33nice/go-livrv2.0.0



liverv1.1.0Package versions and repository activity are refreshed every time the site is built.
Every implementation is checked against the shared test suite. Every week, and whenever the specification changes, CI installs each implementation the way a user would and runs all test cases against it.
| Implementation | Tested version | Passed | Details |
|---|---|---|---|
| JavaScript | 2.12.1 | 70 / 70 | All cases pass |
| Perl | 2.1 | 70 / 70 | All cases pass |
| PHP | dev-master@93e31c9 | 68 / 68 | All cases pass2 cases not counted
|
| Java | 2.0.2 | 70 / 70 | Errors are returned as {"code": …, "fieldValue": …} objects instead of plain error codes (the library adds the invalid value to every error), so only the codes are compared. All cases pass |
| Ruby | 2.1.0 | 70 / 70 | All cases pass |
| Erlang · Olifer | 2.0.2@aef75c5 | 70 / 70 | Not published on hex; built from the repository. All cases pass |
| Raku | 2.2.1 | 70 / 70 | Run on Rakudo Star 2024.02: LIVR 2.1.0 no longer compiles on current Rakudo (a rx:P5 regex in LIVR::Rules::Special). All cases pass |
| Dart | 0.1.0 | 70 / 70 | All cases pass |
| Rust | 0.1.0 | 70 / 70 | All cases pass |
| Go | v2.0.0+incompatible | 66 / 70 | 4 failing cases
|
| Lua | 0.5.1 | 64 / 68 | Installed with the optional lrexlib-pcre2 and luautf8 rocks, which the `like` rule and Unicode-aware to_lc/to_uc need. 4 failing cases
2 cases not counted
|
| Swift | 1.0.5@a362353 | 63 / 70 | Apple platforms only: it relies on NSPredicate format strings, which Foundation on Linux doesn't provide. Built from source in Swift 4.2 language mode on macOS. 7 failing cases
|
| Erlang · Liver | 1.1.0 | 61 / 70 | Validated with liver's `rule_set => livr_spec` mode. liver has no API for registering data-defined rule aliases, so the alias cases fail. 9 failing cases
|
| Python | 2.0.1 | 56 / 70 | 14 failing cases
|
Results of running the LIVR test suite (70 cases) against the latest version of each implementation: the published package, or the default branch when it is not published. Checked on October 29, 2026. The runners live in the conformance/ directory. Some failures come from newer test cases that were added after an implementation's last release. Cases that an implementation can't pass because of its language (for example, PHP and Lua decode {} and [] to the same value) are not counted, so its score is out of the remaining cases.
Wrote a LIVR implementation? Great!
docs/data/implementations.json and, if you can, add a test suite runner to conformance/.npm run readme to update the list in the repository README and open a pull request.