Skip to content

Latest commit

 

History

20,900 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wasmer

Lightweight sandboxes for your apps and AI agents

Run with the CLI · Embed with the SDK · Try in your browser

CLI release MIT license Wasmer Sandbox SDK Wasmer on Discord

Wasmer runs your apps in fast, secure, and lightweight sandboxes: locally, in the cloud, or in your browser.

  • Secure by default. You control file, network, and environment access.
  • Lightweight. Fast startup with a small memory footprint.
  • Ready to run. Python, JavaScript, Bash, and more from the registry.
  • Embeddable. Add sandboxes to your app with the Wasmer SDK.

Run your first sandbox

Install the CLI on macOS or Linux:

curl https://get.wasmer.io -sSfL | sh
Windows and other installation options

Windows (PowerShell)

iwr https://win.wasmer.io -useb | iex

Homebrew (macOS / Linux)

brew install wasmer

See the installation guide for more options.

Run Python in a sandbox:

wasmer run python/python -- -c "print('Hello from Wasmer')"
Hello from Wasmer

Or try a shell command and Cowsay:

wasmer run wasmer/bash -- -c "echo 'Hello from Wasmer'"
wasmer run syrusakbary/cowsay -- "Hello from Wasmer"

Wasmer downloads the package and caches it for future runs. Use -- to separate Wasmer options from the arguments passed to your program. To work with local files, grant access to a directory with --volume; enable host networking with --net when your program needs it. See the CLI guide for details.

No installation needed: open wasmer.sh to try a sandbox in your browser.

Wasmer SDK

Create a sandbox, choose your tools, and run code directly in your app with the Wasmer SDK.

Install the SDK

JavaScript / TypeScript (Node.js 20 or newer):

npm install @wasmer/sdk
Rust

The Rust SDK currently uses a source dependency. Clone wasmerio/wasmer-sdk, then point your application at its rust directory:

[dependencies]
wasmer-sdk = { path = "../wasmer-sdk/rust" }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

Follow the Rust setup guide for the required toolchain and workspace patches. Crates.io publishing is currently disabled.

Python
python -m pip install wasmer-sdk

The SDK's Python wheels support macOS and Linux on Intel and ARM64. See the Python guide.

Swift

Add the package to your Package.swift dependencies:

.package(
    url: "https://github.com/wasmerio/wasmer-sdk.git",
    revision: "wasmer-sdk-swift-v0.2.1"
)

Then add the product to your target's dependencies:

.product(name: "WasmerSDK", package: "wasmer-sdk")

This release provides prebuilt macOS binaries. See the Swift setup guide for platform support and Xcode setup.

Run code in a sandbox

JavaScript / TypeScript

Save this as sandbox.mjs:

import { Wasmer } from "@wasmer/sdk/node";

const wasmer = new Wasmer();
const sandbox = await wasmer.sandboxes.create({
  packages: ["python/python@=3.13.20"],
});

const output = await sandbox
  .command("python", ["-c", "print('Hello from Wasmer')"])
  .run();

console.log(output.text());

Run it with node sandbox.mjs. Python executes inside the sandbox; you don't need Python installed on the host. See the JavaScript guide.

Python example

Save this as sandbox.py:

import asyncio

from wasmer_sdk import Wasmer


async def main():
    wasmer = Wasmer()
    sandbox = await wasmer.sandboxes.create(
        packages=["python/python@=3.13.20"],
    )
    output = await sandbox.command(
        "python", ["-c", "print('Hello from Wasmer')"]
    ).run()
    print(output.text())


asyncio.run(main())

Run it with python sandbox.py. See the Python guide.

Swift example
import WasmerSDK

let wasmer = try Wasmer()
let sandbox = try await wasmer.sandboxes.create(
    packages: ["python/python@=3.13.20"]
)
let output = try await sandbox
    .command("python", ["-c", "print('Hello from Wasmer')"])
    .run()
print(try output.text())

See the Swift guide for embedding in a macOS app and more examples.

JavaScript in the browser

Use the same JavaScript sandbox API with the @wasmer/sdk/browser import. Execution happens in the browser. Your page needs cross-origin isolation (Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp) for worker-backed execution. Follow the browser setup guide or explore wasmer.sh.

Rust example
use wasmer_sdk::{Result, Wasmer};

#[tokio::main]
async fn main() -> Result<()> {
    let wasmer = Wasmer::new()?;
    let sandbox = wasmer
        .sandboxes()
        .create()
        .package("python/python@=3.13.20")
        .await?;

    let output = sandbox
        .command("python")
        .args(["-c", "print('Hello from Wasmer')"])
        .run()
        .await?;

    println!("{}", output.text()?);
    Ok(())
}

See the Rust guide for workspace setup and more examples.

Go further

Build more with the sandbox API:

  • Commands. Run code and capture output.
  • Processes. Stream output and manage long-running tasks.
  • Files. Read and write the sandbox workspace.
  • Tools. Combine languages and packages in one sandbox.
  • Services. Run servers with explicit network access.

The SDK is currently alpha. See the language guides for platform support and capabilities, and the SDK examples for Python scripts, an Edge.js HTTP server, PostgreSQL, and multiple tools sharing one sandbox.

Software you can run

Start with packages from the registry:

Software Package
Python python/python
JavaScript / Node.js-compatible apps wasmer/edgejs
Bash wasmer/bash
PHP php/php
PostgreSQL wasmer/pglite
SQLite sqlite/sqlite
FFmpeg wasmer/ffmpeg

Explore more packages, package your own software, or deploy an application to Wasmer Edge.

Develop and contribute

This repository contains the Wasmer runtime and CLI that power the sandbox experience. The sandbox SDKs live in wasmerio/wasmer-sdk. For lower-level WebAssembly embedding, see the Rust API and C API.

Contributions are welcome. For guidance on getting started, read Contributing to Complex Projects. Wasmer is MIT licensed.

Community

Get help, share what you're building, and meet other Wasmer users:

Discord · X · LinkedIn · Blog

Community translations (may describe an earlier version)

中文 · Deutsch · Español · Français · 日本語 · 한국어

About

🚀 Fast and lightweight sandboxes for your apps and AI agents

Topics

Resources

Contributing

Security policy

Stars

21.1k stars

Watchers

194 watching

Forks

Releases

Used by

Contributors

Languages