A framework for building cross language data models. It consists of a DSL for describing data types, code generators for several target languages, and runtimes for these languages.
The documentation contains details on the ADL language itself and the code generation backends.