Static types for JSON APIs
OCaml TeX Java Shell Makefile Common Lisp
Clone or download
Latest commit a4f8f68 Aug 1, 2018
Failed to load latest commit information.
atd Merge pull request #125 from rgrinberg/warning-fixes Jun 30, 2018
atdcat Cleanup assoc and option handling Jun 24, 2018
atdgen-cppo Remove extra license files May 19, 2017
atdgen-runtime/src Cleanup assoc and option handling Jun 24, 2018
atdgen Remove double (and wrong) value declaration from json.mli. Jun 30, 2018
atdj Cleanup assoc and option handling Jun 24, 2018
doc Update Dune instructions Jul 25, 2018
internal-doc More details on how to make a release Jun 3, 2018
manual transition atdgen to the new atd API Feb 2, 2018
pkg add topkg file Mar 24, 2018
.agignore Add .agignore so these files don't pollute grepping Mar 29, 2018
.gitignore Add emacs backup files to gitignore Aug 25, 2017
.ocp-indent Tests and fixes for Atd_sort. Good to go. Apr 28, 2014 Update changelog Jun 30, 2018
INSTALL Whitespace cleanup Nov 23, 2012 Fixes for topkg Jun 1, 2018
Makefile Merge remote-tracking branch 'origin/master' into json-adapter+master Apr 29, 2018 Attempt at making documentation link more visible Jun 24, 2018
atd.opam Upgrade obsolete features in opam files Jun 2, 2018
atdgen-runtime.opam Upgrade obsolete features in opam files Jun 2, 2018
atdgen.opam Update version constraint in opam files Jun 3, 2018
atdj.opam Update version constraint in opam files Jun 3, 2018 Update the list of tested versions Jul 15, 2018
ocamlflags.sexp Simplify compilation flags and document intentions. May 5, 2018

ATD project - Static Types for Json APIs

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. The current target languages are OCaml and Java.

The following opam packages are provided by the atd project:

  • atdgen: executable that generates OCaml code dealing with json and biniou data formats
  • atdj: executable that generates Java code dealing with json
  • atd: library for parsing atd files used by code generators



Help wanted

The ATD suite of tools is developed and maintained by volunteers—users like you. Various 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.
  • Discuss usage on the OCaml forums.
  • Pick a task that's easy for you.

Check out in particular good first time issues and other issues with which we could use some help.

See our contribution guidelines.


The ATD language and atdgen were originally created at MyLife by Martin Jambon in 2010. Atdj was created at MyLife by John Billings in 2010. Multiple volunteers contributed to the project after that. Other prominent contributors include Jeff Meister, David Sheets, and Rudi Grinberg.

We distribute the source code under the terms of a BSD license.