AI-first compiler

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.

JSON-LD Graph format
Rust Core runtime
1000+ Tests passing
:Program :Scope :Fn :Scope :Param :Call :Return :Param → cranelift IR
main.jsonld
{
  "@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.

Showcases

See it in action

Three programs built entirely by AI — from intent description to running native binary.

$ duumbi intent create "build a calculator with add, sub, mul"
Graph
{
  "@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"
    }
  }]
}
Architecture

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.

.jsonld Source files @type serde Parse Typed AST petgraph Graph IR StableGraph lower Cranelift SSA IR → .o v0 = iadd cc Binary native AI Agent mutate & validate
01

Parse

JSON-LD source files loaded and deserialized via serde_json into a typed AST.

02

Graph

AST nodes inserted into a petgraph StableGraph. Schema validation and type checking.

03

Lower

Graph nodes translated to Cranelift IR. One function per subgraph, SSA form.

04

Link

Object file emitted, linked with C runtime via cc. Native binary output.

Quick start

Running in 60 seconds

Install, create a project, let AI build your first program.

01

Install

$ cargo install duumbi
02

Create a project

$ duumbi init myproject
$ cd myproject
03

Build with AI

$ duumbi add "create a fibonacci function"
  ✓ AI generated fibonacci(n: i64) -> i64
$ duumbi build && ./output
  55