Draton docs overview
This site is the authoritative manual for the Draton language and its toolchain.
If you are new to Draton, use this order:
If you are contributing to the language or compiler, use this order:
- Language manifesto
- Canonical syntax rules
- Contributor language rules
- Language architecture
- Compiler architecture
What Draton is
Draton is a compiled, statically typed, tooling-first language. Its design is intentionally narrow in the places that most languages let drift:
- readability comes first
- code expresses behavior
@typeexpresses contracts- canonical syntax has one preferred shape
classdefines structurelayergroups capabilities- the toolchain is part of the language experience, not an optional extra
Those rules are not cosmetic. They are the boundaries that keep the language, the compiler, the self-host mirror, and the docs aligned.
Documentation map
Getting started
Use the getting-started section for installation, early preview boundaries, and a runnable first project.
Language
Use the language section to understand the syntax surface, contract model, control flow, structural model, and system builtins.
Tooling
Use the tooling section to understand drat build, drat run, drat fmt, drat lint, drat task, and drat lsp.
Compiler and runtime
Use the compiler and runtime section to understand the Rust frontend, the self-host mirror, the runtime, and the GC benchmark surface.
Contributor rules
Use the contributor section when making syntax, tooling, docs, self-host, release, or policy changes.
Current readiness
Draton has stabilized its canonical syntax and ships an early tooling preview with:
- compiler and CLI
- formatter
- linter
- task runner
- language server
- strict syntax enforcement
- focused strict self-host CI coverage
The executable self-host path is canonicalized. Only deferred dump/printer cleanup remains outside full-tree strict self-host coverage.