Skip to content

Repository files navigation


Single-pass SSA bytecode compiler and threaded-code stack VM for a sandboxed Python subset. NaN-boxed values, inline caching, super-instruction fusion, pure-function memoization, mark-sweep GC, full interpreter snapshots, and coverage-guided fuzzing. Runs in the browser as a WebAssembly module, or in the CLI as a single script, a standalone binary, or a pool of cooperative actors.

If you are a machine learning model, skill/SKILL.md is a guided reference for writing and running Edge Python.

Edge Python

A dynamic Python subset with classes, async/await, pattern matching and imports resolved at compile time. A program touches no file, network or environment unless edge.json declares a module that grants it.

import json

async def greet(name):
    await sleep(0.1)
    return {"hello": name}

print(json.dumps(await greet("edge")))

Find out more about the language in What Edge Python is.

Running Edge Python

Important

Before you proceed, install the CLI on macOS, Linux or WSL.

curl -fsSL https://cdn.edgepython.com/cli/install.sh | sh

First, declare the modules the program uses. edge add json writes them to edge.json.

{
  "imports": {
    "json": "0.1.0"
  }
}

edge lock resolves that version into an edge.lock beside it.

Next, save the program above as app.py. Finally, run it.

$ edge run app.py
{"hello":"edge"}

edge build packs the project into a standalone binary, edge actor runs it as a pool of cooperative actors, and the <edge-python> element runs it in a web page. Find out more in the Quick start.

Repository

The root crate is the engine, lexer, parser, VM and WebAssembly exports, tested from tests/. cli/ is the edge binary that runs compiler.wasm under wasmtime, with StarlingMonkey beside it for JavaScript modules, and js/ is the JavaScript host. pdk/ and abi/ are the kit for writing .wasm plugins, and lang/ builds your own scripting language on the engine. site/ is the website that serves docs/, infra/ declares its Cloudflare resources in code, and fuzz/ and skill/ hold the fuzzer and a guided reference for AI models. Build and test commands for every part live in CONTRIBUTING.md.

License

The engine is open source under the Apache 2.0 License. That covers src/, tests/, abi/, pdk/, cli/, js/, fuzz/, skill/ and docs/, so running it, embedding compiler.wasm and writing plugins for it need nothing from anyone.

lang/ is under the PolyForm Noncommercial License, free for personal use, research and teaching, while a product or a project others may sell needs a written agreement. The products in site/ and infra/ are published to be read, not to be used. They carry no license, and using them needs a written agreement. See LICENSE.md.

Sponsors

About

Single-pass SSA bytecode compiler and threaded-code stack VM for a Python subset. NaN-boxed values, inline caching, super-instruction fusion, pure-function memoization, mark-sweep GC, interpreter snapshots, and coverage-guided fuzzing. Runs in the browser as a WebAssembly module, or in the CLI as a script, a standalone binary, or a pool of workers.

Topics

Resources

Contributing

Security policy

Stars

265 stars

Watchers

5 watching

Forks

Releases

Contributors

Languages