Building from Source

Installing Rustup

Building Wasmer from source requires Rustarrow-up-right 1.45+.

The easiest way to install Rust on your system is via Rustup. To get Rustup on Linux and macOS, you can run the following:

curl https://sh.rustup.rs -sSf | sh
circle-info

To install Rust on Windows, download and run rustup-init.exearrow-up-right, then follow the onscreen instructions.

Installing Additional Dependencies

MacOS

If you have Homebrewarrow-up-right installed:

brew install cmake

Or, if you have MacPortsarrow-up-right:

sudo port install cmake

Debian-based

sudo apt install cmake pkg-config libssl-dev

FreeBSD

Windows

Windows support is experimental. WASI is fully supported, but Emscripten support is in the works.

  1. Install Git for Windowsarrow-up-right. Allow it to add git.exe to your PATH (default settings for the installer are fine).

  2. Install CMakearrow-up-right. Ensure CMake is in your PATH.

  3. (optional) Install LLVM 8.0arrow-up-right

Building the Wasmer Runtime

Wasmer is built with Cargoarrow-up-right, the Rust package manager.

First, let's clone Wasmer:

Wasmer supports three different compilers at the moment:

Singlepass Compiler

Build Wasmer:

Note: you should see this as the first line in the console: Available compilers: singlepass

Cranelift Compiler

The Cranelift compiler will work if you are in a X86 or ARM machine, so you don't need to do anything in your system to enable it.

Note: should see this as the first line in the console: Available backends: cranelift

LLVM Compiler

If you want support for the Wasmer LLVM backend, then you will also need to ensure:

  • Ensure that LLVM 8.0.x > is installed on your system

  • In case llvm-config is not accessible, set the correct environment variable for LLVM to access: For example, the environment variable for LLVM 8.0.x would be: LLVM_SYS_80_PREFIX=/path/to/unpacked/llvm-8.0

And create a Wasmer release

Note: you should see this as the first line in the console: Available backends: llvm

All backends

Once you have LLVM and Rust, you can just run:

Note: you should see this as the first line in the console: Available backends: singlepass cranelift llvm

Running your Wasmer binary

Once you run the make build-wasmer command, you will have a new binary ready to be used!

Building Wasmer C-API from source

Wasmer provides a pre-compiled version for the C-API on its release pagearrow-up-right.

However, you can also compile the shared library from source:

This will generate the shared library (depending on your system):

  • Windows: target/release/wasmer_runtime_c_api.dll

  • macOS: target/release/libwasmer_runtime_c_api.dylib

  • Linux: target/release/libwasmer_runtime_c_api.so

circle-exclamation

If you want to generate the library and headers for using them easily, you can execute:

This command will generate a package directory, that you can then use easily in the Wasmer C API examples.

Last updated

Was this helpful?