A portable Python subset

Write Python.
Ship JSON.
Run it anywhere.

Four runtimes. One small bundle.
Sandboxed by default.

01 / Python main.py
def square(n):
    return n * n

print([square(n)
       for n in range(5)])
02 / JSON bundle IR excerpt
{
  "op": "binop",
  "kind": "mul",
  "l": {"op": "name", "id": "n"},
  "r": {"op": "name", "id": "n"}
}
03 / Same result
diaspore-py[0, 1, 4, 9, 16]
diaspore-go[0, 1, 4, 9, 16]
diaspore-ts[0, 1, 4, 9, 16]
diaspore-lua[0, 1, 4, 9, 16]

Portable by construction

A self-hosted compiler emits portable JSON IR.

Authority is explicit

Host-granted capabilities and a metered step budget.

Pick up where you paused

Durable flows resume on another runtime.

Try it locally

uv tool install diaspore
diaspore build main.py -o main.dsp.json
diaspore run main.dsp.json