Skip to content


Repository files navigation


Allows you to run programs in the browser using web assembly using a simple cargo run.


Step 1.

rustup target add wasm32-unknown-unknown
cargo install wasm-server-runner

Step 2.

Add this to your ~/.cargo/config.toml (not the Cargo.toml of your project!):

runner = "wasm-server-runner"

Step 3.

Run programs in the browser using

cargo run --target wasm32-unknown-unknown
cargo run --target wasm32-unknown-unknown --example example

wasm-server-runner path/to/file.wasm

Example output:

INFO wasm_server_runner: wasm output is 49.79kb large
INFO wasm_server_runner: starting webserver at

The website will reload when the server is restarted and serve files relative to the current directory.

Configuration options

All configuration options can be specified via environment variables.


Default: Control the address that the server listens on. Set to to allow access from anywhere.


Default: .

Can be used to specify where relative path requests are loaded from.


Default: none

When set, will try to load the custom index.html from that path instead of the default. Can be relative to the directory.

Note: To support both module and non-module style the index.html needs to have specific string that will be replaced at runtime. The body should contain something like

<script type="module">
    // {{ MODULE }}

Default: false

Controls whether https is used.


Default: false

Controls whether the wasm-bindgen output uses modules or not.