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.

Compilation pipeline

From graph to native binary

Four stages transform a JSON-LD semantic graph into an optimized native executable.

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.

pipeline

# compilation

.jsonld parse StableGraph validate Cranelift IR native binary

# AI mutation

request LLM GraphPatch validate updated graph

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