{"id":13713898,"url":"https://github.com/santhosh-tekuri/jsonschema","last_synced_at":"2025-05-14T04:07:37.596Z","repository":{"id":40990936,"uuid":"90798191","full_name":"santhosh-tekuri/jsonschema","owner":"santhosh-tekuri","description":"JSONSchema (draft 2020-12, draft 2019-09, draft-7, draft-6, draft-4) Validation using Go","archived":false,"fork":false,"pushed_at":"2025-04-11T16:10:38.000Z","size":834,"stargazers_count":1040,"open_issues_count":23,"forks_count":107,"subscribers_count":7,"default_branch":"boon","last_synced_at":"2025-04-11T17:26:20.116Z","etag":null,"topics":["draft2019-09","draft2020-12","draft4","draft6","draft7","go","golang","golang-library","json","json-schema","jsonschema","validation","validator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/santhosh-tekuri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-09T22:41:26.000Z","updated_at":"2025-04-11T16:10:42.000Z","dependencies_parsed_at":"2023-02-09T16:16:11.181Z","dependency_job_id":"739fa5b1-bd60-4cac-9c8f-bc2e89f0e519","html_url":"https://github.com/santhosh-tekuri/jsonschema","commit_stats":{"total_commits":81,"total_committers":2,"mean_commits":40.5,"dds":"0.012345679012345734","last_synced_commit":"86cca28795c9e34c43371b70608d243667bee2a9"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhosh-tekuri%2Fjsonschema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhosh-tekuri%2Fjsonschema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhosh-tekuri%2Fjsonschema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santhosh-tekuri%2Fjsonschema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/santhosh-tekuri","download_url":"https://codeload.github.com/santhosh-tekuri/jsonschema/tar.gz/refs/heads/boon","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069217,"owners_count":22009511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["draft2019-09","draft2020-12","draft4","draft6","draft7","go","golang","golang-library","json","json-schema","jsonschema","validation","validator"],"created_at":"2024-08-02T23:01:47.201Z","updated_at":"2025-05-14T04:07:37.552Z","avatar_url":"https://github.com/santhosh-tekuri.png","language":"Go","funding_links":[],"categories":["Repositories","Go"],"sub_categories":[],"readme":"# jsonschema v6.0.1\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GoDoc](https://godoc.org/github.com/santhosh-tekuri/jsonschema?status.svg)](https://pkg.go.dev/github.com/santhosh-tekuri/jsonschema/v6)\n[![Go Report Card](https://goreportcard.com/badge/github.com/santhosh-tekuri/jsonschema/v6)](https://goreportcard.com/report/github.com/santhosh-tekuri/jsonschema/v6)\n[![Build Status](https://github.com/santhosh-tekuri/jsonschema/actions/workflows/go.yaml/badge.svg?branch=boon)](https://github.com/santhosh-tekuri/jsonschema/actions/workflows/go.yaml)\n[![codecov](https://codecov.io/gh/santhosh-tekuri/jsonschema/branch/boon/graph/badge.svg?token=JMVj1pFT2l)](https://codecov.io/gh/santhosh-tekuri/jsonschema/tree/boon)\n\nsee [godoc](https://pkg.go.dev/github.com/santhosh-tekuri/jsonschema/v6) for examples\n\n## Library Features\n\n- [x] pass [JSON-Schema-Test-Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite) excluding optional(compare with other impls at [bowtie](https://bowtie-json-schema.github.io/bowtie/#))\n  - [x] [![draft-04](https://img.shields.io/endpoint?url=https://bowtie.report/badges/go-jsonschema/compliance/draft4.json)](https://bowtie.report/#/dialects/draft4)\n  - [x] [![draft-06](https://img.shields.io/endpoint?url=https://bowtie.report/badges/go-jsonschema/compliance/draft6.json)](https://bowtie.report/#/dialects/draft6)\n  - [x] [![draft-07](https://img.shields.io/endpoint?url=https://bowtie.report/badges/go-jsonschema/compliance/draft7.json)](https://bowtie.report/#/dialects/draft7)\n  - [x] [![draft/2019-09](https://img.shields.io/endpoint?url=https://bowtie.report/badges/go-jsonschema/compliance/draft2019-09.json)](https://bowtie.report/#/dialects/draft2019-09)\n  - [x] [![draft/2020-12](https://img.shields.io/endpoint?url=https://bowtie.report/badges/go-jsonschema/compliance/draft2020-12.json)](https://bowtie.report/#/dialects/draft2020-12)\n- [x] detect infinite loop traps\n  - [x] `$schema` cycle\n  - [x] validation cycle\n- [x] custom `$schema` url\n- [x] vocabulary based validation\n- [x] custom regex engine\n- [x] format assertions\n  - [x] flag to enable in draft \u003e= 2019-09\n  - [x] custom format registration\n  - [x] built-in formats\n    - [x] regex, uuid\n    - [x] ipv4, ipv6\n    - [x] hostname, email\n    - [x] date, time, date-time, duration\n    - [x] json-pointer, relative-json-pointer\n    - [x] uri, uri-reference, uri-template\n    - [x] iri, iri-reference\n    - [x] period, semver\n- [x] content assertions\n  - [x] flag to enable in draft \u003e= 7\n  - [x] contentEncoding\n    - [x] base64\n    - [x] custom\n  - [x] contentMediaType\n    - [x] application/json\n    - [x] custom\n  - [x] contentSchema\n- [x] errors\n  - [x] introspectable\n  - [x] hierarchy\n    - [x] alternative display with `#`\n  - [x] output\n    - [x] flag\n    - [x] basic\n    - [x] detailed\n- [x] custom vocabulary\n    - enable via `$vocabulary` for draft \u003e=2019-19\n    - enable via flag for draft \u003c= 7\n- [x] mixed dialect support\n\n## CLI v0.7.0\n\nto install: `go install github.com/santhosh-tekuri/jsonschema/cmd/jv@latest`\n\nNote that the cli is versioned independently. you can see it in git tags `cmd/jv/v0.7.0`\n\n```\nUsage: jv [OPTIONS] SCHEMA [INSTANCE...]\n\nOptions:\n  -c, --assert-content    Enable content assertions with draft \u003e= 7\n  -f, --assert-format     Enable format assertions with draft \u003e= 2019\n      --cacert pem-file   Use the specified pem-file to verify the peer. The file may contain multiple CA certificates\n  -d, --draft version     Draft version used when '$schema' is missing. Valid values 4, 6, 7, 2019, 2020 (default 2020)\n  -h, --help              Print help information\n  -k, --insecure          Use insecure TLS connection\n  -o, --output format     Output format. Valid values simple, alt, flag, basic, detailed (default \"simple\")\n  -q, --quiet             Do not print errors\n  -v, --version           Print build information\n```\n\n- [x] exit code `1` for validation errors, `2` for usage errors\n- [x] validate both schema and multiple instances\n- [x] support both json and yaml files\n- [x] support standard input, use `-`\n- [x] quite mode with parsable output\n- [x] http(s) url support\n  - [x] custom certs for validation, use `--cacert`\n  - [x] flag to skip certificate verification, use `--insecure`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanthosh-tekuri%2Fjsonschema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanthosh-tekuri%2Fjsonschema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanthosh-tekuri%2Fjsonschema/lists"}