Documentation
Welcome to the Koru documentation. Koru is pre-release — the language and these docs both move fast, and nothing here is recommended for production use.
What is Koru?
Koru is an uncompromising systems language. Tors declare their exits up front, callers handle every branch, and obligations are tracked in the type system at zero runtime cost — enforced at compile time, through three emitters: native via Zig, JavaScript, and C#.
Key Features
- Tors & Procs: First-class declarations with explicit branch handling; host code lives in procs and nowhere else
- Phantom Obligations: Compile-time state tracking without runtime cost
- Taps: Transparent observability and instrumentation as a detached layer
- Zero-Cost Abstractions: The program states intent; the compiler emits the specialized code
- Three Emitters: Native via Zig, JavaScript (the playground runs the whole pipeline in your browser), and C#
Quick Example
import std/io
std/io:print.ln("Hello, Koru!") Next Steps
- Tors and continuations — Koru’s core building block
- Flows and subflows — chain tors into flows
- Imports — organize code into modules
- Paths — a program declares its own import aliases