{"id":49085456,"url":"https://github.com/sourcemeta/codegen","last_synced_at":"2026-04-20T15:10:36.300Z","repository":{"id":329341008,"uuid":"1119162859","full_name":"sourcemeta/codegen","owner":"sourcemeta","description":"A code generator to output type definitions from JSON Schema in a growing amount of programming languages","archived":false,"fork":false,"pushed_at":"2026-04-16T19:54:00.000Z","size":2744,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-16T21:13:51.261Z","etag":null,"topics":["code-generation","code-generator","codegen","json-schema","jsonschema","programming-language","types","typescript"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcemeta.png","metadata":{"files":{"readme":"README.markdown","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"sourcemeta"}},"created_at":"2025-12-18T21:05:09.000Z","updated_at":"2026-04-16T19:54:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sourcemeta/codegen","commit_stats":null,"previous_names":["sourcemeta-research/codegen"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sourcemeta/codegen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fcodegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fcodegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fcodegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fcodegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcemeta","download_url":"https://codeload.github.com/sourcemeta/codegen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fcodegen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32052685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["code-generation","code-generator","codegen","json-schema","jsonschema","programming-language","types","typescript"],"created_at":"2026-04-20T15:10:33.155Z","updated_at":"2026-04-20T15:10:36.290Z","avatar_url":"https://github.com/sourcemeta.png","language":"C++","funding_links":["https://github.com/sponsors/sourcemeta"],"categories":[],"sub_categories":[],"readme":"# JSON Schema Codegen\n\n\u003e Generate type definitions from JSON Schema for multiple programming languages\n\nExisting tools in this space typically support limited subsets of JSON Schema\nwith varying compliance levels. This project, maintained by a member of the\n[JSON Schema Technical Steering Committee](https://github.com/jviotti),\nprioritizes specification compliance and comprehensive keyword coverage.\n\n**We currently only support TypeScript (given demand) but we will extend\nsupport to other programming languages once we make the foundations stable.**\n\n## Keyword Support\n\nNot every JSON Schema keyword maps directly to type system constructs. This\nimplementation aims to provide complete structural typing, and you are expected\nto use a JSON Schema validator at runtime to enforce remaining constraints.\n\n| Vocabulary | Keyword | TypeScript |\n|------------|---------|------------|\n| Core (2020-12) | `$schema` | Yes |\n| Core (2020-12) | `$id` | Yes |\n| Core (2020-12) | `$ref` | Yes |\n| Core (2020-12) | `$defs` | Yes |\n| Core (2020-12) | `$anchor` | Yes |\n| Core (2020-12) | `$dynamicAnchor` | Yes |\n| Core (2020-12) | `$dynamicRef` | Yes |\n| Core (2020-12) | `$vocabulary` | Ignored |\n| Core (2020-12) | `$comment` | Ignored |\n| Applicator (2020-12) | `properties` | Yes |\n| Applicator (2020-12) | `additionalProperties` | **PARTIAL GIVEN LANGUAGE LIMITATIONS** |\n| Applicator (2020-12) | `items` | Yes |\n| Applicator (2020-12) | `prefixItems` | Yes |\n| Applicator (2020-12) | `anyOf` | Yes |\n| Applicator (2020-12) | `patternProperties` | **PARTIAL GIVEN LANGUAGE LIMITATIONS** |\n| Applicator (2020-12) | `propertyNames` | Ignored |\n| Applicator (2020-12) | `dependentSchemas` | Pending |\n| Applicator (2020-12) | `contains` | Ignored |\n| Applicator (2020-12) | `allOf` | Yes |\n| Applicator (2020-12) | `oneOf` | **PARTIAL GIVEN LANGUAGE LIMITATIONS** |\n| Applicator (2020-12) | `not` | **CANNOT SUPPORT** |\n| Applicator (2020-12) | `if` | **PARTIAL GIVEN LANGUAGE LIMITATIONS** |\n| Applicator (2020-12) | `then` | **PARTIAL GIVEN LANGUAGE LIMITATIONS** |\n| Applicator (2020-12) | `else` | **PARTIAL GIVEN LANGUAGE LIMITATIONS** |\n| Validation (2020-12) | `type` | Yes |\n| Validation (2020-12) | `enum` | Yes |\n| Validation (2020-12) | `required` | Yes |\n| Validation (2020-12) | `const` | Yes |\n| Validation (2020-12) | `minLength` | Ignored |\n| Validation (2020-12) | `maxLength` | Ignored |\n| Validation (2020-12) | `pattern` | Ignored |\n| Validation (2020-12) | `minimum` | Ignored |\n| Validation (2020-12) | `maximum` | Ignored |\n| Validation (2020-12) | `exclusiveMinimum` | Ignored |\n| Validation (2020-12) | `exclusiveMaximum` | Ignored |\n| Validation (2020-12) | `multipleOf` | Ignored |\n| Validation (2020-12) | `minProperties` | Ignored |\n| Validation (2020-12) | `maxProperties` | Ignored |\n| Validation (2020-12) | `dependentRequired` | Pending |\n| Validation (2020-12) | `minItems` | Ignored |\n| Validation (2020-12) | `maxItems` | Ignored |\n| Validation (2020-12) | `minContains` | Ignored |\n| Validation (2020-12) | `maxContains` | Ignored |\n| Validation (2020-12) | `uniqueItems` | Ignored |\n| Unevaluated (2020-12) | `unevaluatedItems` | Pending |\n| Unevaluated (2020-12) | `unevaluatedProperties` | Pending |\n| Meta-Data (2020-12) | `title` | Ignored |\n| Meta-Data (2020-12) | `description` | Ignored |\n| Meta-Data (2020-12) | `default` | Ignored |\n| Meta-Data (2020-12) | `deprecated` | Ignored |\n| Meta-Data (2020-12) | `examples` | Ignored |\n| Meta-Data (2020-12) | `readOnly` | Ignored |\n| Meta-Data (2020-12) | `writeOnly` | Ignored |\n| Format Annotation (2020-12) | `format` | Ignored |\n| Format Assertion (2020-12) | `format` | Ignored |\n| Content (2020-12) | `contentEncoding` | Ignored |\n| Content (2020-12) | `contentMediaType` | Ignored |\n| Content (2020-12) | `contentSchema` | Ignored |\n\nSupport for other JSON Schema dialects coming soon.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcemeta%2Fcodegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcemeta%2Fcodegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcemeta%2Fcodegen/lists"}