aontu

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.