{"id":13566616,"url":"https://github.com/apioo/typeschema","last_synced_at":"2025-09-09T18:07:20.017Z","repository":{"id":38685956,"uuid":"164335954","full_name":"apioo/typeschema","owner":"apioo","description":"TypeSchema is a JSON format to describe data models in a language neutral format","archived":false,"fork":false,"pushed_at":"2025-07-26T17:27:28.000Z","size":704,"stargazers_count":158,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-11T09:56:12.002Z","etag":null,"topics":["code-generation","dto","dto-generator","json","json-schema","typeschema"],"latest_commit_sha":null,"homepage":"https://typeschema.org","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apioo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"chriskapp","patreon":"fusio","custom":"https://www.paypal.me/fusioapi"}},"created_at":"2019-01-06T18:52:44.000Z","updated_at":"2025-08-08T19:16:19.000Z","dependencies_parsed_at":"2023-02-15T19:45:34.991Z","dependency_job_id":"8e029d67-f23f-41f2-a9ce-0d96cda5f4bf","html_url":"https://github.com/apioo/typeschema","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/apioo/typeschema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apioo","download_url":"https://codeload.github.com/apioo/typeschema/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274340157,"owners_count":25267290,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","dto","dto-generator","json","json-schema","typeschema"],"created_at":"2024-08-01T13:02:13.214Z","updated_at":"2025-09-09T18:07:19.995Z","avatar_url":"https://github.com/apioo.png","language":"PHP","funding_links":["https://github.com/sponsors/chriskapp","https://patreon.com/fusio","https://www.paypal.me/fusioapi"],"categories":["PHP"],"sub_categories":[],"readme":"# TypeSchema\n\n## About\n\nTypeSchema is a JSON specification to describe data models.\n\nA TypeSchema specification can be easily transformed into code for almost any programming language.\nThis helps to reuse core data models in different environments.\nMore information at: [https://typeschema.org](https://typeschema.org)\n\nThe TypeSchema meta specification which describes the specification itself is located at [specification/typeschema.json](./specification/typeschema.json).\nWe automatically push the specification to the [TypeHub platform](https://app.typehub.cloud/d/typehub/typeschema) where\nyou can see also a rendered version of the specification and download the auto generated models.\n\n## Features\n\n* An elegant specification optimized for code-generation\n* A portable format to share data models across different programming languages\n* Generate clean and simple to use DTOs\n* Handle advanced concepts like inheritance, polymorphism and generics\n* Use reflection to easily turn any class into a TypeSchema specification\n* Easily implement your own code generator\n\n## Generator\n\nWe provide a hosted version of the code generator at our [website](https://typeschema.org/generator).\nTo transform a TypeSchema specification into code you can use our [generator](https://github.com/apioo/typeschema-generator)\n[docker image](https://hub.docker.com/r/apiootech/typeschema-generator). Simply run `docker-compose up` which reads the `typeschema.json`\nspecification from the `output/` folder and writes the generated code back into this folder.\n\n```\nservices:\n  generator:\n    image: apiootech/typeschema-generator:0.6\n    environment:\n      # possible formats: csharp, go, java, php, python, rust, typescript\n      FORMAT: \"java\"\n      NAMESPACE: \"org.acme\"\n      SOURCE: \"typeschema.json\"\n    volumes:\n      - ./output:/usr/src/typeschema/output\n```\n\nFor more advanced integration options please take a look at the [SDKgen](https://sdkgen.app/) project\nwhich offers various integration options like a CLI, GitHub action or REST API.\n\n## Usage\n\nTake a look at our [integration](https://typeschema.org/integration) page to see examples\nhow you can use the generated models in your code. The generator uses mostly standard or\nwell-known libraries therefor most developers should be familiar with this process.\n\n## Models\n\nTypeSchema provides auto-generated models which describe the specification itself. These models\ncan be used if you want to work with a TypeSchema specification.\n\n| Language   | GitHub                                                         | Package                                                             |\n|------------|----------------------------------------------------------------|---------------------------------------------------------------------|\n| C#         | [GitHub](https://github.com/apioo/typeschema-model-csharp)     | [Nuget](https://www.nuget.org/packages/TypeSchema.Model/)           |\n| Go         | [GitHub](https://github.com/apioo/typeschema-model-go)         |                                                                     |\n| Java       | [GitHub](https://github.com/apioo/typeschema-model-java)       | [Maven](https://central.sonatype.com/artifact/org.typeschema/model) |\n| JavaScript | [GitHub](https://github.com/apioo/typeschema-model-javascript) | [NPM](https://www.npmjs.com/package/typeschema-model)               |\n| PHP        | [GitHub](https://github.com/apioo/typeschema-model-php)        | [Packagist](https://packagist.org/packages/typeschema/model)        |\n| Python     | [GitHub](https://github.com/apioo/typeschema-model-python)     | [PyPI](https://pypi.org/project/typeschema-model/)                  |\n\n## Reflection\n\nThe reflection libraries help to automatically generate a TypeSchema specification based on a class.\nThese libraries use the reflection mechanism of each language to inspect the class and create the fitting specification.\n\n| Language | GitHub                                                         | Package                                                             |\n|----------|----------------------------------------------------------------|---------------------------------------------------------------------|\n| Java     | [GitHub](https://github.com/apioo/typeschema-reflection-java)       | [Maven](https://central.sonatype.com/artifact/org.typeschema/reflection) |\n| PHP      | [GitHub](https://github.com/apioo/typeschema-reflection-php)        | [Packagist](https://packagist.org/packages/typeschema/reflection)        |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapioo%2Ftypeschema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapioo%2Ftypeschema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapioo%2Ftypeschema/lists"}