boon
boon copied to clipboard
JSONSchema (draft 2020-12, draft 2019-09, draft-7, draft-6, draft-4) Validation in Rust
Library Features
- [x] pass JSON-Schema-Test-Suite excluding optional(compare with other impls at bowtie)
- [x] detect infinite loop traps
- [x]
$schema
cycle - [x] validation cycle
- [x]
- [x] custom
$schema
url - [x] vocabulary based validation
- [x] ECMA-262 regex compatibility (pass tests from
optional/ecmascript-regex.json
) - [x] format assertions
- [x] flag to enable in draft >= 2019-09
- [x] custom format registration
- [x] built-in formats
- [x] regex, uuid
- [x] ipv4, ipv6
- [x] hostname, email
- [x] idn-hostname, idn-email
- [x] date, time, date-time, duration
- [x] json-pointer, relative-json-pointer
- [x] uri, uri-reference, uri-template
- [x] iri, iri-reference
- [x] period
- [x] content assertions
- [x] flag to enable in draft >= 7
- [x] contentEncoding
- [x] base64
- [x] custom
- [x] contentMediaType
- [x] application/json
- [x] custom
- [x] contentSchema
- [x] errors
- [x] introspectable
- [x] hierarchy
- [x] alternative display with
#
- [x] alternative display with
- [x] output
- [x] flag
- [x] basic
- [x] detailed
- [ ] custom vocabulary
CLI
to install: cargo install boon-cli
or download it from releases
Usage: boon [OPTIONS] SCHEMA [INSTANCE...]
Options:
-h, --help Print help information
-q, --quiet Do not print errors
-d, --draft <VER> Draft used when '$schema' is missing. Valid values 4,
6, 7, 2019, 2020 (default 2020)
-o, --output <FMT> Output format. Valid values simple, alt, flag, basic,
detailed (default simple)
-f, --assert-format
Enable format assertions with draft >= 2019
-c, --assert-content
Enable content assertions with draft >= 7
--cacert <FILE> Use the specified PEM certificate file to verify the
peer. The file may contain multiple CA certificates
-k, --insecure Use insecure TLS connection
This cli can validate both schema and multiple instances.
It support both json and yaml files
exit code is:
-
1
if command line arguments are invalid. -
2
if there are errors