Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7,247 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Molt

Molt compiles Python into standalone native binaries and WASM with a Rust-owned runtime, deterministic tooling, and explicit compatibility boundaries.

It is not trying to be a hidden CPython launcher. Molt targets a verified, production-minded subset that can keep expanding without giving up control over performance, packaging, or runtime semantics.

Why Molt

  • Standalone output: compiled binaries do not rely on a host Python installation.
  • Rust-first runtime: hot semantics and stdlib behavior are pushed down into runtime primitives and intrinsics instead of Python fallbacks.
  • Deterministic engineering: parity, performance, and security are treated as measurable gates, not vague goals.
  • Cross-target ambition: native and WASM are both first-class targets.

Project Contract

  • CPython >=3.12 parity target for supported Molt semantics.
  • Full product target: full CPython >=3.12 parity for the supported subset without hidden host fallback.
  • Compiled artifacts must work without a host Python installation.
  • By design, Molt does not support unrestricted exec/eval/compile, runtime monkeypatching, or unrestricted reflection in compiled binaries.

What Molt Supports Today

  • Native AOT compilation through the Rust backend.
  • Standalone binary workflows with no runtime dependency on local CPython.
  • A growing Rust-first stdlib lowering program with generated audit surfaces.
  • Differential testing against CPython as a core validation path.
  • WASM build workflows, with cross-target parity still incomplete and actively tracked.

5-Minute Quickstart

For the full setup and troubleshooting path, use docs/getting-started.md.

uv sync --group dev --python 3.12   # installs the `molt` command into .venv
molt run examples/hello.py          # build + run, like `python examples/hello.py`

uv sync puts the molt command on your path (in .venv). From there the common commands are:

molt run app.py             # build and run (fast `dev` profile, like `cargo run`)
molt build app.py --release # produce an optimized standalone binary
./app                       # run the compiled binary directly
molt compare app.py         # diff Molt's output against CPython

molt run defaults to the fast dev profile and molt build defaults to the optimized release profile — the same convention as cargo run / cargo build --release. Override either with --profile dev|release (or the --release shorthand); both verbs accept both profiles. See docs/getting-started.md.

From a source checkout without activating the venv, prefix any command with uv run --python 3.12, e.g. uv run --python 3.12 molt run examples/hello.py. The module form python3 -m molt.cli ... is equivalent and is what the contributor proof lanes use.

Install

Status

Current detailed state lives in docs/spec/STATUS.md. Forward priorities live in ROADMAP.md. The near-term execution slice lives in docs/ROADMAP_90_DAYS.md.

For compatibility and proof detail:

Development

About

High-performance Python subset compiler for native binaries and WASM.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages