Quilt·
5 languages

The 5 VMs

The same 5 opcodes, ported to 5 languages. Each VM is a door into the same idea. The metaphor is local; the substrate is the same.

01Side by side

02The 5 opcodes, in 5 languages

Compare. The shape is the same. The syntax is local. The substrate is universal.

// C (quilt-vm-c)
substrate_bind(sub, "greeting", json_string("hello"));
substrate_link(sub, "alice", "bob", "friend");
substrate_view(sub, "greeting");

// Rust (quilt-vm-rust)
sub.bind("greeting", json!("hello"));
sub.link("alice", "bob", "friend");
sub.view("greeting");

// TypeScript (quilt-vm-typescript)
sub.bind('greeting', 'hello');
sub.link('alice', 'bob', 'friend');
sub.view('greeting');

// Haskell (quilt-vm-haskell)
bind "greeting" (toJSON "hello")
link "alice" "bob" "friend"
view "greeting"

// WASM (quilt-vm-wasm)
;; binary format: opcode + operands
;; (wasm is the runtime, not the source language)