About
aontu is an open source language for defining a software system: what it contains, what those things must be, and how they may relate. It is an engine you install and run yourself, and this site is its documentation.
What it is
aontu defines a system's entities, their types, and the relations between them. Types, defaults, and data use the same notation and combine through unification. The engine reports a conflict when statements cannot agree.
Use a definition to check a proposed change before accepting it. The result includes a verdict, error codes, and source locations that a program can act on. Read why aontu for the design rationale, or try the playground.
The name
aontu is from the Irish for agreement, union, consent: two things made one. It is pronounced roughly "AYN-too", and it is written lowercase everywhere, because it is the command you type. The project is named for what the engine does rather than for what it is built from.
Two implementations, held together
aontu ships as a TypeScript package on
npm and as a Go module at
github.com/aontu-lang/aontu/go. TypeScript is the canonical implementation.
Both implementations run the same language-neutral test corpus, and
both require 100% test coverage with documented exclusions.
Authored examples and the playground run aontu@0.72.0.
Documentation is imported from the engine repository, where examples
are tested against that checkout. Those pages can describe changes
ahead of the installed package. /versions.json
reports the website's version information.
Who maintains it
aontu is written and maintained by Richard Rodger. It is MIT licensed. Contributions, bug reports and corrections are welcome through the issue tracker; see contact.
Source and machine-readable content
- The engine
- Both implementations, the shared corpus, and the documentation these pages are generated from.
- This site
- The Astro source for aontu.dev. Versioned and deployed separately from the engine.
- /llms.txt, /openapi.json, /errors.json
- The machine-readable index, the description of this site's content API, and every error code the engine can raise. The grammar is published too, for constrained decoding.
Next: the tutorial starts from nothing, and the playground runs the engine in your browser.