Skip to content

Documentation

dusk is a small systems language that compiles to native code. The documentation is split into four sections: guides teach the language by task, the language reference states the rules precisely, the standard library pages document each shipped module’s API, and tooling covers the compiler CLI, the dawn package tool, and the roadmap.

Task-oriented walkthroughs, in roughly the order you will want them. New to dusk? Start with Getting started and the Language tour.

  • Getting started: install the toolchain and run your first program.
  • Language tour: a quick pass over the core features, with small verified programs at each stop.
  • Paradigms: how paradigm directives gate procedural, functional, and OOP features per file.
  • Memory: alloc, free, defer, allocators, arenas, ownership, and the generational heap.
  • Errors as values: (T, error) returns and the must-handle rule.
  • Concurrency: threads, channels, mutexes, atomics, and the thread pool.
  • Packages with dawn: importing code and fetching external packages from git.
  • Examples tour: a guided walk through the repository’s runnable programs.

The normative description of the language. Where a guide and a reference page cover the same ground, the reference is the one that states the exact rules.

API pages for the modules shipped under lib/std, all written in dusk itself.

  • Overview: what ships, how imports work, and what is planned next.
  • std.io: console printing, typed line input, and the file and stdin builtins.
  • std.string: string helpers, number parsing, and the StringBuilder mutable string.
  • std.vector and std.map: the growable array and the string-keyed hash map.
  • std.memory: the allocator module and the arena allocator.
  • std.functional: the Maybe and Either monadic types.
  • std.concurrent: atomics, sleep, channels, mutexes, condition variables, and the thread pool.

The programs around the language.