Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ahrefs/atd
Static types for JSON APIs
https://github.com/ahrefs/atd
Last synced: 4 days ago
JSON representation
Static types for JSON APIs
- Host: GitHub
- URL: https://github.com/ahrefs/atd
- Owner: ahrefs
- License: other
- Created: 2013-03-10T06:43:15.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-07-15T06:06:49.000Z (6 months ago)
- Last Synced: 2024-12-29T05:03:12.108Z (11 days ago)
- Language: OCaml
- Homepage:
- Size: 5.01 MB
- Stars: 319
- Watchers: 12
- Forks: 56
- Open Issues: 90
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-list - atd
README
ATD project - Static Types for Json APIs
==[![CircleCI](https://circleci.com/gh/ahrefs/atd/tree/master.svg?style=svg)](https://circleci.com/gh/ahrefs/atd/tree/master)
ATD stands for Adaptable Type Definitions. It is a syntax for defining
cross-language data types. It is used as input to generate efficient
and type-safe serializers, deserializers and validators.Target programming languages currently supported:
* C++: [atdcpp](atdcpp)
* DLang: [atdd](atdd)
* Java: [atdj](atdj)
* OCaml, Melange: [atdgen](atdgen)
* Python: [atdpy](atdpy)
* Scala: [atds](atds)
* TypeScript: [atdts](atdts)Export to other interface description languages (IDLs):
* JSON Schema: [`atdcat -jsonschema`](atdcat)Tools to work with ATD files:
* [atdcat](atdcat): check syntax, reformat, expand inherited definitions,
export to JSON Schema, ...
* [atddiff](atddiff): compare two revisions of a given ATD interface and
report incompatibilities.All can installed with opam e.g.
```
$ opam install atdgen
```Documentation
--[here](http://atd.readthedocs.io/)
Contributing
--The ATD suite of tools is developed and maintained by
volunteers—users like you.
[Various issues](https://github.com/ahrefs/atd/issues) are in need
of attention. If you'd like to contribute, please leave a comment on the
issue you're interested in, or create a new issue. Experienced
contributors will guide you as needed.There are many simple ways of making a positive impact. For example,
you can...* Use the software in your project.
* Give a demo to your colleagues.
* Share the passion on your blog.
* Tweet about what you're doing with atd.
* Report difficulties by creating new issues. We'll triage them.
* Ask questions on StackOverflow.
* Answer questions on
[StackOverflow](https://stackoverflow.com/search?q=atdgen).
* Discuss usage on the [OCaml forums](https://discuss.ocaml.org/).
* Pick a [task](https://github.com/ahrefs/atd/issues) that's easy for you.Check out in particular
[good first time issues](https://github.com/ahrefs/atd/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+time+issue%22)
and other issues with which
[we could use some
help](https://github.com/ahrefs/atd/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).For guidelines on how to contribute code, consult
[CONTRIBUTING.md](CONTRIBUTING.md).Authors
--The ATD project started in 2010. Contributors include:
* Martin Jambon
* Rudi Grinberg
* Alexandre Bourquelot
* Ivan Jager
* oleksiy
* Gregoire Lionnet
* David Sheets
* Rytis Jonynas
* Jeff Meister
* Carmelo Piccione
* Louis
* Louis Roché
* Raman Varabets
* Daniel Weil
* Egor Chemokhonenko
* Gabriel Scherer
* Louis Roché (Ahrefs)
* Matthew McQuaid
* koonwen
* tzm
* Mathieu Baudet
* Oleksiy Golovko
* Rauan Mayemir
* Hyeseong Kim
* John Billings
* Marek Kubica
* Zach Yannes
* Antonin Décimo
* Brendan Long
* Caio Wakamatsu
* Chris Yocum
* Pierre Boutillier
* Shon Feder
* metanivek
* sebastiantoh
* Anurag Soni
* Arjun Ravi Narayan
* Asya-kawai
* Christophe Troestler
* Damien Doligez
* Daniel M
* Enrico Tassi
* François Pottier
* Javier Chavarri
* Jonas Bergler
* Kate
* Stephane Legrand
* Vincent Bernardoff
* Zach
* haoyang
* pmundkur
* ygrekWe distribute the source code under the terms of a [BSD license](LICENSE.md).