runno
Package for running code inside the Runno WebAssembly sandbox.
Quickstart
The run_code method allows you to run a snippet of code.
from runno import run_code
code = "print('Hello, World!')"
result = await run_code("python", code)
if result.result_type == "complete":
print("OUTPUT:")
print(result.tty)
else:
print("ERROR")
Available runtimes are: python, quickjs, sqlite, clang, clangpp, ruby, and php-cgi.
Including Files
If you want to process files within your sandbox, you can include them in the
file system by using the run_fs method.
from runno import run_fs, WASIFS, StringFile, WASITimestamps
fs: WASIFS = {
"/program.py": StringFile(
path="/program.py",
timestamps=WASITimestamps(
access=datetime.now(),
modification=datetime.now(),
change=datetime.now(),
),
mode="string",
content="""
print(open('data.csv'))
""",
),
"/data.csv": StringFile(
path="/data.csv",
timestamps=WASITimestamps(
access=datetime.now(),
modification=datetime.now(),
change=datetime.now(),
),
mode="string",
content="""
a,b,c
1,2,3
""",
)
}
await run_fs(runtime, "/program", fs)
Including Dependencies
You can use the same technique to include pure python packages as dependencies. The interface for this is not super nice right now, but it's on the way.
Limiting Execution Time
You can limit how much time is allocated for execution using an optional
timeout kwarg (measured in seconds). Like:
from runno import run_code
code = "while True: pass"
result = await run_code("python", code, timeout=5)
if result.result_type == "timeout":
print("Timed out.")
else:
print("Wow, it ran forever.")
Release files for runno 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| runno-0.2.1.tar.gz | 47.0 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| runno-0.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| runno-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 | Details |
| runno-0.2.1-cp313-cp313-macosx_15_0_x86_64.whl | CPython 3.13 | CPython 3.13 | macOS 15.0+ x86-64 | Details |
| runno-0.2.1-cp313-cp313-macosx_15_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 15.0+ ARM64 | Details |
Total release size: 358.6 MB
Release files / runno-0.2.1.tar.gz
| Download URL | runno-0.2.1.tar.gz |
|---|---|
| Size | 47.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
753450c3692fd0c758145046cc65fe28c9097fd77de895f4aa60347c11c4bb38
|
|
BLAKE2b-256 checksum How to use checksums |
a0eed5326365f32167561f9d7c20da13b74cb3c817046beb92603092e5b6f279
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.1
|
Release files / runno-0.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | runno-0.2.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 80.1 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
14310f07bf30937262bd726150e64676279ce752eeb8fa4640b329a4aa536d44
|
|
BLAKE2b-256 checksum How to use checksums |
46bb0cb6fa0034650328e43d7f5505f9071d90d737e4f9c67cd75f05df6eb58a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.1
|
Release files / runno-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
| Download URL | runno-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 79.0 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e59ca4e4bd69ae60e7e5d28320761814dd0eab16d21049d7caab15a6572fe645
|
|
BLAKE2b-256 checksum How to use checksums |
1bd5656a83a6424c2165d8e4d906bb855c5c282aea3ed134678394f1d7283916
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.1
|
Release files / runno-0.2.1-cp313-cp313-macosx_15_0_x86_64.whl
| Download URL | runno-0.2.1-cp313-cp313-macosx_15_0_x86_64.whl |
|---|---|
| Size | 76.5 MB |
| Tags | CPython 3.13 macOS 15.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
8b7f8288253b34feef47fde6b5e392def94bc57cca5d56d7e070187c77205f7e
|
|
BLAKE2b-256 checksum How to use checksums |
dd638dac8c622287bda255423bb4346a2bd1291d22fdb3644ef42710efa98a43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.1
|
Release files / runno-0.2.1-cp313-cp313-macosx_15_0_arm64.whl
| Download URL | runno-0.2.1-cp313-cp313-macosx_15_0_arm64.whl |
|---|---|
| Size | 76.1 MB |
| Tags | CPython 3.13 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9e662ba60896a40058521b1096965c2a6630a0d4d17058001864bc07f45e8c0c
|
|
BLAKE2b-256 checksum How to use checksums |
17bb7e99a24b84312446d8d8c8986f8ec799268be990f6ad14aaa2d38ca6c2ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.1
|