Quickstart
This guide takes you from zero to a running native binary in under 5 minutes.
1. Create a project
Section titled “1. Create a project”duumbi init calculatorcd calculatorThis creates a .duumbi/ workspace with:
graph/main.jsonld— your program’s entry pointconfig.toml— project configurationschema/core.schema.json— graph validation schemastdlib/— standard library modules (math, io)
2. Explore the default program
Section titled “2. Explore the default program”The generated main.jsonld contains a simple program that adds 3 + 5:
{ "@context": "https://duumbi.dev/ns/core#", "@type": "duumbi:Program", "duumbi:functions": [ { "@type": "duumbi:Function", "@id": "duumbi:main/main", "duumbi:name": "main", "duumbi:returnType": "i64", "duumbi:blocks": [ { "@type": "duumbi:Block", "@id": "duumbi:main/main/entry", "duumbi:label": "entry", "duumbi:ops": [ { "@type": "duumbi:Const", "duumbi:value": 3, "duumbi:valueType": "i64" }, { "@type": "duumbi:Const", "duumbi:value": 5, "duumbi:valueType": "i64" }, { "@type": "duumbi:Add" }, { "@type": "duumbi:Print" }, { "@type": "duumbi:Return" } ] } ] } ]}3. Build and run
Section titled “3. Build and run”duumbi build./outputOutput:
8The program compiled the graph to native code via Cranelift and printed the result of 3 + 5.
4. Check and describe
Section titled “4. Check and describe”Validate the graph without building:
duumbi checkSee a human-readable description of your program:
duumbi describeProgram: main Function: main() -> i64 Block: entry 0: Const(3) 1: Const(5) 2: Add 3: Print 4: Return5. Interactive REPL
Section titled “5. Interactive REPL”Start the interactive mode:
duumbiThe REPL supports all commands plus slash-commands:
duumbi> /build ✓ Build successfulduumbi> /describe Function: main() -> i64 ...duumbi> /add "add a subtract function" ✓ AI generated sub(a: i64, b: i64) -> i64What’s next?
Section titled “What’s next?”- Let AI modify your program with
duumbi add - Build a multi-module project with imports and dependencies
- Use the intent system for natural language-driven development
Reference
Section titled “Reference”- Op Types — all operations with JSON-LD examples
- Type System — i64, f64, bool, string, array, struct, references
- Ownership Model — borrow checking at the graph level
- Error Codes — E001–E035 with fix suggestions
- CLI Commands — full command reference
- Config File — config.toml options