Skip to content
An incomplete, stackless, interpreter of Python bytecode, written in Rust.
Rust Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Move to functional tests. Apr 17, 2016
pythonlib Add 'sep' and 'end' arguments to print(). May 8, 2016
src Support bytecode format for the 3.6 release (#2) Oct 29, 2017
LICENSE Add GPL license Oct 28, 2017


Build Status

A Python virtual machine, written in Rust.


  • prints strings to stdout
  • basic exceptions
  • for loops
  • functions, positional arguments, keyword arguments, *args, **kwargs
  • useable as a library
  • a fine-grained sandbox


  • Compatible with CPython 3.6's bytecode, in order to take advantage of FAT Python
  • Support CPython's implementation of the standard library
  • No crash, even when messing with code objects
  • Bytecode optimizations at runtime
  • Less bounded by the GIL than CPython


  • CPython 3.6 (used as a parser and bytecode compiler).
  • Rust
  • Cargo

Try it

  1. git clone
  2. cd pythonvm-rust
  3. python3 -m compileall -b pythonlib examples
  4. cargo run pythonlib/ examples/helloworld.pyc
You can’t perform that action at this time.