About this project
Wasmer is a WebAssembly-based runtime and command-line tool for running applications inside fast, secure and lightweight sandboxes. Sandboxes can run locally, in the cloud, or in the browser, and access to files, network and environment is controlled by the user.
Key characteristics described in the README:
- Secure by default: file, network and environment access are explicitly controlled.
- Lightweight: fast startup and a small memory footprint.
- Ready to run: packages such as Python, JavaScript, Bash, PHP, PostgreSQL, SQLite and FFmpeg are available from the Wasmer registry.
- Embeddable: sandboxes can be added to applications through the Wasmer SDK.
Getting started with the CLI:
Install on macOS or Linux with `curl https://get.wasmer.io -sSfL | sh`; Windows uses PowerShell, and Homebrew is also supported. A first run looks like `wasmer run python/python -- -c "print('Hello from Wasmer')"`. Packages are downloaded and cached for later runs. The `--` separator distinguishes Wasmer options from program arguments; `--volume` grants access to a local directory and `--net` enables host networking. A browser-based trial is available at wasmer.sh without installation.
The Wasmer SDK lets developers create sandboxes, select tools and run code inside their own applications. It is available for JavaScript/TypeScript (Node.js 20+), Python (macOS and Linux, Intel and ARM64), Rust (source dependency, crates.io publishing currently disabled) and Swift (Swift 6+, macOS 12+, iOS 27+). Browser execution uses the same JavaScript API with cross-origin isolation headers. The SDK is currently alpha.
SDK capabilities include running commands and capturing output, managing processes with streamed output, reading and writing sandbox files, combining languages and packages in one sandbox, and running services with explicit network access. Example packages include Python, Edge.js, Bash, PHP, PGlite, SQLite and FFmpeg.
This repository contains the Wasmer runtime and CLI; the sandbox SDKs live in a separate repository. Lower-level embedding is possible through the Rust and C APIs. The project is MIT licensed, accepts contributions, and provides documentation for building from source, testing, security reporting and issue tracking. Community channels include Discord, X, LinkedIn and a blog, with community translations of the README in several languages.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.