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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Move varargs.py to functional tests. Apr 17, 2016
functional_tests
pythonlib Add 'sep' and 'end' arguments to print(). May 8, 2016
src Support bytecode format for the 3.6 release (#2) Oct 29, 2017
tests
.gitignore
.travis.yml
Cargo.toml
LICENSE Add GPL license Oct 28, 2017
README.md
run_functional_tests.py

README.md

pythonvm-rust

Build Status

A Python virtual machine, written in Rust.

Features

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

Goals

  • 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

Dependencies

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

Try it

  1. git clone https://github.com/ProgVal/pythonvm-rust.git
  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.