Memphis
Memphis is a ridiculous Python interpreter written from scratch in Rust. It’s both a personal learning tool and a long-term technical experiment. It supports multiple execution modes, including a mostly working treewalk interpreter and an in-progress bytecode virtual machine.
Around Memphis is a small set of companion tools—most notably Ozark, an interactive bytecode compiler—that support experimentation, debugging, and learning across the interpreter stack.
It can run some code but probably not your code. If you're curious about how interpreters and compilers actually work, I hope this project offers a useful (and occasionally silly) resource.
Try Ozark, the interactive bytecode compilerRecent Updates
2025-11-03
Memphis goes online: adding socket support
2025-10-20
Python’s operator chaining is mildly interesting
2025-06-16
How global variables work in Python bytecode
2025-06-02
How local variables work in Python bytecode
2025-05-05
Verifying two interpreter engines with one test suite
2025-03-31
I'm embarrassed by how much code I cut from my test suite
2025-03-03
I left corporate and still do roadmaps + a Memphis update
2025-01-13
Typed integers in Rust for safer Python bytecode compilation
2024-12-30
How I added support for nested functions in Python bytecode
2024-12-16
Improving memory efficiency in a working interpreter
2024-11-25
An interpreter inside an interpreter
2024-11-18
Building for WebAssembly
2024-10-21
A REPL for fat-finger friendly typing