ProgVal / Pythonvm Rust
Licence: gpl-3.0
An incomplete stackless interpreter of Python bytecode, written in Rust.
Stars: ✭ 50
Labels
Projects that are alternatives of or similar to Pythonvm Rust
Goawk
A POSIX-compliant AWK interpreter written in Go
Stars: ✭ 995 (+1890%)
Mutual labels: interpreter
Esta
Interpreted language and bytecode VM of my own design written in Rust [Unmaintained]
Stars: ✭ 28 (-44%)
Mutual labels: interpreter
Cymbal
Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go"
Stars: ✭ 49 (-2%)
Mutual labels: interpreter
U6a
Implementation of Unlambda, an esoteric programming language.
Stars: ✭ 46 (-8%)
Mutual labels: interpreter
Nimlox
Interpreter for the 'Lox' language written in Nim
Stars: ✭ 35 (-30%)
Mutual labels: interpreter
Pseudo
PSeudo - The world's simplest PLAYSTATION emulator
Stars: ✭ 31 (-38%)
Mutual labels: interpreter
Openxion
OpenXION - Reference Implementation of the XION Scripting Language
Stars: ✭ 40 (-20%)
Mutual labels: interpreter
Winter
Haskell port of the WebAssembly OCaml reference interpreter
Stars: ✭ 42 (-16%)
Mutual labels: interpreter
pythonvm-rust
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
Try it
git clone https://github.com/ProgVal/pythonvm-rust.git
cd pythonvm-rust
python3 -m compileall -b pythonlib examples
cargo run pythonlib/ examples/helloworld.pyc
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].