Python API for running code in isolated Hyperlight sandboxes with swappable backends
Project description
hyperlight-sandbox
Python API package for running code inside Hyperlight sandboxes with separately installable backends and packaged guest packages.
Quick Start
from hyperlight_sandbox import Sandbox
sandbox = Sandbox(backend="wasm", module="python_guest.path")
sandbox.register_tool("add", lambda a=0, b=0: a + b)
result = sandbox.run('''
result = call_tool('add', a=3, b=4)
print(result)
''')
print(result.stdout) # "7\n"
Install the local repo packages for development with:
uv sync # installs core + guest packages via workspace
just python-build # builds maturin backends
Packaged guest packages expose importable module references such as
python_guest.path and javascript_guest.path. The API resolves those to the
packaged .aot artifact automatically.
Example dependency sets:
Sandbox(backend="wasm", module="python_guest.path")requireshyperlight-sandbox[wasm,python_guest]Sandbox(backend="wasm", module="javascript_guest.path")requireshyperlight-sandbox[wasm,javascript_guest]Sandbox(backend="hyperlight-js")requireshyperlight-sandbox[hyperlight_js]
Use Sandbox(backend="wasm", module="javascript_guest.path") to run the
packaged JavaScript Wasm guest package.
Use Sandbox(backend="hyperlight-js") to run the separate HyperlightJS
backend package.
Snapshot Semantics
snapshot()captures guest runtime state and backend-managed sandbox files.restore()rewinds both runtime state and sandbox file state to the snapshot point.- Output files under
/outputare ephemeral perrun()and are cleared before each execution.
Build
just python-build
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hyperlight_sandbox-0.3.0.tar.gz.
File metadata
- Download URL: hyperlight_sandbox-0.3.0.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00491ce267ffbdb206377c79b4afd86510177ad73f4daf2ef7fce02b54eaf801
|
|
| MD5 |
1ea31ce7aaf5a8013ad083422e0e5036
|
|
| BLAKE2b-256 |
cffece88996ea3e3e05130d6f0e8cd2ffbe9ab9bf3d9448b7050d4b8d0802b0a
|
File details
Details for the file hyperlight_sandbox-0.3.0-py3-none-any.whl.
File metadata
- Download URL: hyperlight_sandbox-0.3.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8e6779d64e9c187acd93456851ebafaed2f49380e5d132bc0906a4080d2217
|
|
| MD5 |
f1ac5dfbe2fb07f79e26b345f64043e6
|
|
| BLAKE2b-256 |
2b33e6dcd6729308d13570ae2d3be0e476019a6f3fea387d7549bb1f77ce0408
|