Programs as
meaning,
not syntax.
DUUMBI compiles semantic graphs — programs expressed in JSON-LD — directly to native code via Cranelift. No text. No parsing. Pure structure.
"@context": "https://duumbi.dev/ctx",
"@type": "duumbi:Function",
"@id": "fn:add",
"params": ["x", "y"],
"body": { "@type": "duumbi:Add",
"lhs": "x", "rhs": "y" }
}
Graph-native IR
Programs are JSON-LD graphs. No parser, no tokenizer — structure is the source of truth.
Native output
Cranelift backend produces optimised native machine code — no VM, no interpreted layer.
Semantic types
Every node carries meaning via linked-data vocabulary. Types are URIs, not identifiers.
AI-composable
Graph programs are trivially generated, merged, and refactored by language models.
See it in action
Three programs built entirely by AI — from intent description to running native binary.
{
"@type": "duumbi:Function",
"@id": "fn:add",
"params": [
{ "name": "a", "type": "i64" },
{ "name": "b", "type": "i64" }
],
"body": [{
"@type": "duumbi:Return",
"value": {
"@type": "duumbi:Add",
"left": "a", "right": "b"
}
}]
} From graph to native binary
Four stages transform a JSON-LD semantic graph into an optimized native executable. AI mutates the graph at any point — the compiler validates every change.
Parse
JSON-LD source files loaded and deserialized via serde_json into a typed AST.
Graph
AST nodes inserted into a petgraph StableGraph. Schema validation and type checking.
Lower
Graph nodes translated to Cranelift IR. One function per subgraph, SSA form.
Link
Object file emitted, linked with C runtime via cc. Native binary output.
Running in 60 seconds
Install, create a project, let AI build your first program.
Install
Create a project
$ cd myproject
Build with AI
✓ AI generated fibonacci(n: i64) -> i64
$ duumbi build && ./output
55