| Crates.io | wasmrun |
| lib.rs | wasmrun |
| version | 0.12.0 |
| created_at | 2025-06-28 09:43:52.699843+00 |
| updated_at | 2025-09-21 15:15:16.249035+00 |
| description | A WebAssembly Runtime |
| homepage | |
| repository | https://github.com/anistark/wasmrun |
| max_upload_size | |
| id | 1729688 |
| size | 7,492,105 |
Wasmrun is a powerful WebAssembly runtime that simplifies development, compilation, and deployment of WebAssembly applications.

cargo install wasmrun
git clone https://github.com/anistark/wasmrun.git
cd wasmrun
cargo install --path .
Wasmrun supports both flag-based arguments using --path and direct positional arguments for an intuitive command line experience.
# Run on current directory
wasmrun
# Run a WebAssembly file directly
wasmrun myfile.wasm
# Run a project directory
wasmrun ./my-wasm-project
# With flags
wasmrun --path ./path/to/your/file.wasm
wasmrun --path ./my-wasm-project
Start the development server with live reload:
wasmrun run ./my-project --watch
wasmrun run ./my-project --port 3000 --language rust
Compile a project to WebAssembly using the appropriate plugin:
wasmrun compile ./my-project
wasmrun compile ./my-project --output ./build --optimization release
wasmrun compile ./my-project --optimization size --verbose
List available plugins and manage external plugins:
# List all available plugins
wasmrun plugin list
# Install external plugins
wasmrun plugin install wasmrust
wasmrun plugin install wasmgo
# Get detailed plugin information
wasmrun plugin info wasmrust
wasmrun plugin info wasmgo
Verify a WASM file format and analyze structure:
wasmrun verify ./file.wasm
wasmrun verify ./file.wasm --detailed
wasmrun inspect ./file.wasm
Initialize a new project:
wasmrun init my-app --template rust
wasmrun init my-app --template go --directory ./projects/
Clean build artifacts:
wasmrun clean ./my-project
Stop any running Wasmrun server:
wasmrun stop
Wasmrun's modular plugin architecture enables seamless integration of different programming languages and compilation toolchains into a unified development experience. Here's a detailed guide on wasmrun plugin architecture.
Built-in plugins are compiled directly into Wasmrun and provide core language support:
| Plugin | Language | Compiler | Status | Capabilities |
|---|---|---|---|---|
| C/C++ | C, C++ | Emscripten | ✅ Stable | Full WASM + Web Apps + Makefiles |
| AssemblyScript | TypeScript-like | asc |
✅ Stable | WASM + Optimization + npm/yarn |
| Python | Python | py2wasm |
🚧 Beta | Runtime Integration + Bundle creation |
External plugins are distributed via crates.io and installed dynamically to ~/.wasmrun/:
| Plugin | Language | Compiler | Installation | Capabilities |
|---|---|---|---|---|
| wasmrust | Rust | rustc + wasm-pack |
wasmrun plugin install wasmrust |
Full WASM + Web Apps + Optimization |
| wasmgo | Go | TinyGo | wasmrun plugin install wasmgo |
WASM + Optimization + Package Support |
How External Plugins Work:
cargo install, plugins are downloaded and compiled to ~/.wasmrun/# Install external plugins (similar to cargo install)
wasmrun plugin install wasmrust # Installs to ~/.wasmrun/
wasmrun plugin install wasmgo
# View all installed plugins
wasmrun plugin list
# Get detailed plugin information
wasmrun plugin info wasmrust
# Search for available plugins
wasmrun plugin search rust
# Uninstall plugins
wasmrun plugin uninstall wasmgo
Plugin Installation Process:
cargo install to build the plugin~/.wasmrun/plugins/{plugin_name}/# Install the Rust plugin
wasmrun plugin install wasmrust
# Run Rust projects
wasmrun ./my-rust-wasm-project
Requirements:
wasm32-unknown-unknown target: rustup target add wasm32-unknown-unknownwasm-pack for web applications# Install the Go plugin
wasmrun plugin install wasmgo
# Run Go projects
wasmrun ./my-go-wasm-project
Requirements:
# Works out of the box - no plugin installation needed
wasmrun ./my-c-project
Requirements:
# Works out of the box
wasmrun ./my-assemblyscript-project
Requirements:
npm install -g assemblyscript# Works out of the box
wasmrun ./my-python-project
Requirements:
pip install py2wasmWasmrun automatically detects your project type based on:
.rs, .go, .c, .cpp, .py, .ts)Cargo.toml, go.mod, Makefile, package.json)main.rs, main.go, main.c, main.py, etc.)You can override detection with the --language flag:
wasmrun --language rust ./my-project
wasmrun --language go ./my-project
"Plugin not available"
# For built-in language support:
wasmrun --language c # C/C++ (built-in)
wasmrun --language asc # AssemblyScript (built-in)
wasmrun --language python # Python (built-in)
# For Rust projects, install the external plugin:
wasmrun plugin install wasmrust
# Use wasmrun plugin list to see available plugins
🚨 Open an issue and let us know about it.
"Plugin dependencies missing"
# Install missing tools for external plugins:
rustup target add wasm32-unknown-unknown # For wasmrust plugin
go install tinygo.org/x/tinygo@latest # For wasmgo plugin
# Check plugin dependencies:
wasmrun plugin info wasmrust # Shows required dependencies
"Wrong plugin selected"
# Force a specific plugin
wasmrun --language rust
wasmrun --language go
"Plugin not found during installation"
# Make sure you have the correct plugin name
wasmrun plugin install wasmrust # For Rust support
wasmrun plugin install wasmgo # For Go support
# Check available external plugins
wasmrun plugin list --external
mise use python@3.11.0
pip install py2wasm
"Port is already in use"
wasmrun stop # Stop existing server
wasmrun --port 3001 # Use different port
"No entry point found"
main(), _start(), or exported functionswasmrun inspect to see available exports"wasm-bindgen module detected"
.js file instead of the .wasm file directly (wasmrust plugin)wasmrun project-dir instead of individual filesWe welcome contributions! Please see CONTRIBUTING.md for detailed guidelines, including how to create and maintain plugins.
Wasmrun is built with love using:
Made with ❤️ for the WebAssembly community
⭐ If you find Wasmrun useful, please consider starring the repository!