AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
경량 WebAssembly 샌드박스로 앱을 로컬·클라우드에서 실행·배포·확장, Wasmer Edge에서 AI 에이전트도 무료 시작
Run your apps in lightweight WebAssembly sandboxes: locally or on our cloud. Deploy and scale apps and AI agents on Wasmer Edge. Start for free.
개발 도구Rust · CGitHub @wasmerio온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
🚀 Fast and lightweight sandboxes for your apps and AI agents
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Wasmer runs your apps in fast, secure, and lightweight sandboxes: locally, in the cloud, or in your browser.
Install the CLI on macOS or Linux:
curl https://get.wasmer.io -sSfL | sh
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.
Create a sandbox, choose your tools, and run code directly in your app with the Wasmer SDK.
JavaScript / TypeScript (Node.js 20 or newer):
npm install @wasmer/sdk
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 -m pip install wasmer-sdk
The SDK's Python wheels support macOS and Linux on Intel and ARM64. See the Python guide.
Use Swift 6 or newer. The SDK supports macOS 12+ and iOS 27+; iOS apps require Xcode 27 or newer.
Add the package to your Package.swift dependencies:
.package(
url: "https://github.com/wasmerio/wasmer-sdk.git",
revision: "wasmer-sdk-swift-v0.4.0"
)
Then add the product to your target's dependencies:
.product(name: "WasmerSDK", package: "wasmer-sdk")
In Xcode, you can instead add the repository URL, select
wasmer-sdk-swift-v0.4.0 as a revision, and choose the WasmerSDK product.
SwiftPM downloads the prebuilt macOS binaries and iOS runtime resources.
For iOS, set the deployment target to iOS 27.0 and allow local networking
in your app's Info.plist:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
Both platforms use import WasmerSDK and the same API. On iOS, the SDK manages
a hidden WKWebView; your app does not need to display one. See the
Swift guide and
iOS setup guide
for more details.
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.
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.
Use this code in an async throws context:
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 Swift!')"]
).run(timeout: 30)
print(try output.text())
See the Swift guide for embedding in an iOS or macOS app and more examples.
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.
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.
Build more with the sandbox API:
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.
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.
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.
Get help, share what you're building, and meet other Wasmer users: