Skip to main content

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)

Source distribution for runno 0.2.1
File Size Uploaded
runno-0.2.1.tar.gz 47.0 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for runno 0.2.1
File
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

Release history Release notifications | RSS feed

This release

0.2.1 This release

5 release files

0.2.0

5 release files

0.1.2

5 release files

0.1.1

4 release files

0.1.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page