wasmerio/wasmer-sdk
wasmerio/wasmer-sdk has 1,263 GitHub stars and 109 forks. GitHot measured 0 stars in 24 hours and +4 in 7 days. Last checked 2026-11-13 02:28 UTC. Last push 2026-11-02.
Wasmer SDK: Run anything, anywhere suing WebAssembly-based sandboxes
What you can do
- Unix commands in an interactive browser shell — wasmer.sh application
- pnpm with outbound browser networking over WISP — wasmer.sh, backed by the WASIX Epoxy package
- A PHP website rendered from a browser WASIX server — JavaScript service-worker example
- Python 3.13 — JavaScript example, Python example, Rust example
측정된 스타 증가
- in 24h
- 0
- in 7 days
- +4
- in 15 days
- 기록 수집 중
- in 1 month
- 기록 수집 중
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
OriginalWasmer SDK
Run real software inside lightweight WebAssembly sandboxes from JavaScript, Python, Swift (macOS preview), or Rust.
The Wasmer SDK turns packages from the Wasmer registry into composable sandboxes. Add Python, PostgreSQL, Edge.js, PHP, shell tools, or your own package; give the sandbox files and capabilities; then run commands or keep long-lived processes under your control.
import { Wasmer } from "@wasmer/sdk/node";
const wasmer = new Wasmer();
const sandbox = await wasmer.sandboxes.create({
packages: ["python/python@=3.13.20"],
files: { "hello.py": "print('Hello from Wasmer')" },
});
const output = await sandbox
.command("python", ["/workspace/hello.py"])
.run();
console.log(output.text());
The same package, sandbox, command, process, filesystem, and port model is available in every language SDK.
What can you run?
- Unix commands in an interactive browser shell — wasmer.sh application
- pnpm with outbound browser networking over WISP — wasmer.sh, backed by the WASIX Epoxy package
- A PHP website rendered from a browser WASIX server — JavaScript service-worker example
- Python 3.13 — JavaScript example, Python example, Rust example
- A Node.js-compatible HTTP server with Edge.js — JavaScript example, Python example, Rust example
- PostgreSQL 18 with a standard native
psqlclient — JavaScript example, Python example, Rust example - Python, Edge.js, PHP, and shell tools in one sandbox — JavaScript example, Python example, Rust example
The examples share the guest programs in fixtures/, so each SDK
runs the same Edge.js server, Python program, and PostgreSQL query.
One small, composable API
A Wasmer client owns package resolution, workers, networking, and the local
cache. wasmer.packages resolves reusable packages.
wasmer.sandboxes.create() composes packages, files, environment variables,
mounts, and network access into an isolated workspace.
Commands belong to a sandbox:
command(...).run()captures a finite command and fails on an unsuccessful exit by default.command(...).spawn()starts a live process with stdin, stdout, stderr, termination, and exit status.sandbox.fsreads and writes the guest filesystem.sandbox.portswaits for guest services without inventing a separate server abstraction.sandbox.installPackage()adds software after the sandbox has started.
There is deliberately no client-level run() shortcut. Every execution has an
explicit sandbox, which keeps package composition, files, capabilities, and
process lifetime visible.
JavaScript and Python callers can pass check: false or check=False when a
non-zero status is expected. Spawned-process wait() remains unchecked so
applications can inspect every exit reason directly.
Pick your SDK
| Language | Package | Guide |
|---|---|---|
| JavaScript | npm install @wasmer/sdk |
JavaScript SDK |
| Python | pip install wasmer-sdk |
Python SDK |
| Rust | Workspace/Git while crate publishing is disabled | Rust SDK |
| Swift | SwiftPM for macOS and iOS 27+ | Swift SDK |
JavaScript runs Wasmer and WASIX directly in WebAssembly through
wasm-bindgen; Node networking is bridged through node:net and node:dns,
not a native addon. Python uses the Rust SDK through a Python-independent
UniFFI library. Swift uses that same UniFFI facade with an async Swift API.
The Swift preview runs on macOS; the pinned runtime needs an iOS-capable backend
before it can run on iPhone. Rust uses Wasmer natively.
Each language has its own version, component tag, and GitHub release with installable artifacts. npm and PyPI receive the same files attached to their respective GitHub releases. See release automation.
Fast, shared package caching
The SDK uses .wasmer in the working directory by default. Native Rust,
Python, and Node.js clients share the same registry metadata and downloaded
package data. Native compiled artifacts live in target-specific cache
partitions, while JavaScript keeps its runtime-specific data separate.
Set a different cache root when an application needs another location. Commit
neither .wasmer nor compiled artifacts to source control.
Local development
Each SDK guide contains its own build and test commands:
CI runs the Rust and UniFFI foundation first, then JavaScript and Python in parallel, with a separate native Swift job on macOS. Cargo outputs, Wasmer registry/package data, and target-specific compiled artifacts are cached independently.
The SDK is currently alpha. Its cross-language shape is intentional, but error codes and less common capabilities may still evolve. For the architectural rationale, read the Universal Wasmer SDK WARP.
관련 프로젝트 살펴보기
freeCodeCamp/freeCodeCamp
freeCodeCamp.org의 오픈 소스 코드베이스와 커리큘럼입니다. 수학, 프로그래밍, 컴퓨터 과학을 무료로 배울 수 있습니다.
459,071 스타donnemartin/system-design-primer
대규모 시스템 설계 방법을 배우고 시스템 설계 면접을 준비할 수 있습니다. Anki 플래시카드가 포함되어 있습니다.
377,743 스타react/react
웹과 네이티브 사용자 인터페이스를 위한 라이브러리.
252,571 스타vuejs/vue
Vue 2 저장소입니다. Vue 3은 https://github.com/vuejs/core를 방문하세요.
212,527 스타