wasmer run CLI

Run a WebAssembly file or Wasmer container.

Usage

Run a Wasmer package

All packages published on Wasmer Registry can be run with the wasmer run command.

wasmer run python/python

Some commands, such as cowsay have multiple commands that we can run (eg. cowsay or cowthink)

wasmer run syrusakbary/cowsay --command-name=cowthink Hello world

If in your current dir you have a wasmer.toml file, you can simply run the local package with:

wasmer run .

Wasmer run also allows running from URLs (in case a package is hosted on a different registry).

wasmer run https://wasmer.io/python/python

Run a Wasm file

wasmer run my_program.wasm

Run a Wasm file with a custom compiler

wasmer run my_program.wasm --singlepass

You can also use --cranelift or --llvm instead of --singlepass.

Run a WASI or WASIX Module

You can pass the arguments that will be given to the WASI program:

wasmer run my_wasi_program.wasm -- arg1 arg2 arg3

You can also pass environment variables:

wasmer run my_wasi_program.wasm --env MYVAR=MYVALUE -- arg1 arg2 arg3

Help

This is the help output from the Wasmer CLI for wasmer run --help:

Usage: wasmer run [OPTIONS] <INPUT> [ARGS]...

Arguments:
  <INPUT>
          The file, URL, or package to run

  [ARGS]...
          Command-line arguments passed to the package

Options:
  -v, --verbose...
          More output per occurrence

  -q, --quiet...
          Less output per occurrence

      --wasmer-dir <WASMER_DIR>
          The Wasmer home directory

          [env: WASMER_DIR=/Users/syrusakbary/.wasmer]
          [default: /Users/syrusakbary/.wasmer]

      --singlepass
          Use Singlepass compiler

      --cranelift
          Use Cranelift compiler

      --llvm
          Use LLVM compiler

      --enable-verifier
          Enable compiler internal verification

      --enable-simd
          Enable support for the SIMD proposal

      --disable-threads
          Disable support for the threads proposal

      --enable-threads
          Deprecated, threads are enabled by default

      --enable-reference-types
          Enable support for the reference types proposal

      --enable-multi-value
          Enable support for the multi value proposal

      --enable-bulk-memory
          Enable support for the bulk memory proposal

      --enable-all
          Enable support for all pre-standard proposals

      --dir <DIR>
          WASI pre-opened directory

      --mapdir <GUEST_DIR:HOST_DIR>
          Map a host directory to a different location for the Wasm module

      --env <KEY=VALUE>
          Pass custom environment variables

      --forward-host-env
          Forward all host env variables to the wcgi task

          [env: FORWARD_HOST_ENV=]

      --use <USE>
          List of other containers this module depends on

      --include-webc <WEBC>
          List of webc packages that are explicitly included for execution Note: these packages will be used instead of those in the registry

      --map-command <MAPCMD>
          List of injected atoms

      --net
          Enable networking with the host network.

          Allows WASI modules to open TCP and UDP connections, create sockets, ...

      --no-tty
          Disables the TTY bridge

      --enable-async-threads
          Enables asynchronous threading

      --http-client
          Allow instances to send http requests.

          Access to domains is granted by default.

      --deny-multiple-wasi-versions
          Require WASI modules to only import 1 version of WASI

      --registry <REGISTRY>
          The registry to use

          [env: WASMER_REGISTRY=]

  -a, --addr <ADDR>
          The address to serve on

          [env: ADDR=]
          [default: 127.0.0.1:8000]

      --stack-size <STACK_SIZE>
          Set the default stack size (default is 1048576)

  -e, --entrypoint <ENTRYPOINT>
          The function or command to invoke

      --COREDUMP PATH <COREDUMP PATH>
          Generate a coredump at this path if a WebAssembly trap occurs

  -h, --help
          Print help (see a summary with '-h')