Restricted Python Virtual Machine
Project description
Restricted Python Virtual Machine
Restricted Python Virtual Machine (R-PVM) implemented by pure python.
specification
- aim for complete safe sandbox
- designed for Python3.6 bytecode
- execute one by one
- good for smart contract of crypto currency
- No warranty and unstable
check
- cannot use MAKE_FUNCTION op (lambda, comprehension and inner fnc)
- cannot use async/await
- limit to execute function
- YOU must select safe function
Install
pip3 install rpvm
How to use
from rpvm.vm import VirtualMachine from RestrictedPython import safe_builtins, safe_globals source = """ a = 1 b = 2 c = a + b """ code = compile(source, '<example>', 'exec') b = safe_builtins.copy() l = dict() g = safe_globals.copy() vm = VirtualMachine(code, b, l, g) steps = 0 max_steps = 500 while not vm.finish and steps < max_steps: vm.exec() steps += 1 print("complete?", vm.finish) print("result", vm.return_value) print("c is", l['c'])
test
python3 -m pytest tests
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size rpvm-0.1.0a1.tar.gz (8.0 kB) | File type Source | Python version None | Upload date | Hashes View |