Start here Dodo 0.1.4

Dodo documentation

Learn Dodo step by step, build useful programs, and look up the complete language and standard library.

On this page

Dodo is a compiled systems language: you write .dodo source files, and the compiler turns them into native programs. It checks types and borrowing before your program runs. Memory ownership is explicit, resources are released when their owners leave scope, and ordinary generated code needs no garbage collector or scheduler.

You can begin with small terminal programs and fixed arrays. You do not need to understand raw pointers, allocators, or hardware to get started.

Start here

  1. Install Dodo. Set up the compiler and linker for your system.
  2. Write your first program. Print a message, change it, check it, and keep an executable.
  3. Learn variables and expressions. Work with values, numbers, strings, and arrays.
  4. Define types and functions. Break a program into named operations and model data with structs and enums.
  5. Make decisions and repeat work. Use if, loops, and match.
  6. Understand ownership and handle errors. Learn why values move, when references are valid, and how Results work.
  7. Reuse code with generics, split a project into packages, and write tests.

The chapters include complete examples you can save and run. A Try it exercise asks you to change working code; reference pages then explain the exact rules. If a term is unfamiliar, use the glossary.

Choose a path

You want to… Go to
Learn from the beginning Your first program, then language basics
Build a small program using several features Build a temperature report
Check, format, test, or debug code Command line, testing, editor setup
Understand a compiler error Diagnostics and common mistakes
Find a library for a task Standard library
Look up a function, type, field, or method API reference, all packages
Check an exact language rule Syntax, ownership, language specification
Work on the compiler or documentation Build from source, edit these docs

What you can build

The standard library includes portable byte and UTF-8 text processing, JSON, collections, mathematics, hashing, time values, and protocol engines. Hosted adapters add console I/O, files, environment variables, processes, threads, synchronization, sockets, TLS, HTTP clients, and web servers.

Start with console output, text, and collections. For an application, follow reading files, JSON, or web routing. Each guide introduces storage and failure handling before its detailed contracts. The package inventory distinguishes portable code from APIs that require a supported operating system.

Which version these docs describe

The compiler release is 0.1.4 and the language design is Dodo 0.1. This website follows the repository’s main branch, which may contain changes after that release. The library is embedded in your compiler; check dodo --version when an example uses an API your binary does not recognize.

The tutorials and guides describe implemented behavior. The language specification also defines design requirements; implementation decisions and limits records the supported subset and differences. For an exact release, use its tagged source and release notes.

How to use the examples

A complete example includes package, imports if needed, and either main or named tests. Save each standalone program in its own file or fresh project folder. Run the command shown beside it. Smaller snippets illustrate one rule and may need surrounding code; deliberately invalid examples are labeled.

Fences marked dodo test are executable documentation. From a compiler checkout, dodo test docs --doc checks them. File, network, and device examples explain any extra setup instead of assuming an external service is available.

Use Ctrl+K or Cmd+K to search pages and API declarations. The sidebar separates the learning sequence, practical tooling, language reference, library guides, and exact API declarations.

Read offline

The Markdown guides live in docs/src/content/docs. Download the language specification as plain text or PDF. Both are generated from the same canonical Markdown. A local site build also creates the full searchable library reference from the bundled sources.

Type to search all documentation.

Keyboard shortcuts

Search documentation
Ctrl K or /
Move through results
↑ ↓
Open selected result
Enter
Close a dialog
Esc
Show these shortcuts
?