Fetching documentation…
Status: shipped · Shipped: September 2026
The Rust compiler and native CLI are complete. Python is removed from the repository. This page is kept as the design record.
.mx/.ts/.tsx — replaces tree-sitter; arena-allocated, spec-compliant, 3× faster than SWCmorphc → cargo install morphc) — new, install, update, dev, build, run, check, doctor, cache, plus direct file morphing (morph <file> --to cpp|rust)crates/morpher — escape analysis, type widening, unique_ptr/shared_ptr decisions at compile time, no GCmorph/, pyproject.toml, tests/unit, tests/integration, PyPI workflow all deleted September 2026morph/
├── crates/
│ ├── morphc/ # Native CLI binary → `morph`
│ ├── morpher/ # TS→C++/Rust translator (Oxc + escape analysis)
│ ├── morph-parser/ # .mx parsing (Oxc + lightningcss)
│ ├── morph-ir/ # Intermediate Representation
│ ├── morph-codegen/ # C++ / Rust code emission
│ ├── morph-build/ # Compilation, dev rt + IPC, packaging
│ ├── morph-cache/ # Global cache, runtime downloads
│ └── morph-config/ # Config + lock file parsing.mx files, CSS, Tailwind, morphState/morphEffect, fetch()morph dev, morph build, morph run, morph checkMorph didn't start with Rust because the goal at the start wasn't a fast compiler. The goal was to find out whether the concept even works — and Python was the right tool for that experiment:
.mx → IR → render natively?" Python answered that in days.Morph chose Oxc: 3–4× faster than SWC parsing, arena allocator, spec-compliant, powers Rolldown (Vite's future bundler), and the oxlint ecosystem provides a natural home for morph check.
| Phase | What |
|---|---|
| 1 | Parser swap: Oxc + lightningcss producing MxSource |
| 2 | Walker + IR builder port |
| 3 | Codegen port (node emitter, logic emitter, feature set) |
| 4 | Build system + dev mode (CMake devrt, loopback TCP IPC) |
| 5 | CLI finalization + crates.io publishing |
| 6 | Python deletion — all Python files, tests, and workflows removed |