Building from Source
Installing Rustup
Building Wasmer from source requires Rust 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:
To install Rust on Windows, download and run rustup-init.exe, then follow the onscreen instructions.
Installing Additional Dependencies
MacOS
If you have Homebrew installed:
Or, if you have MacPorts:
Debian-based
FreeBSD
Windows
Windows support is experimental. WASI is fully supported, but Emscripten support is in the works.
Install Visual Studio
Install Rust for Windows
Install Git for Windows. Allow it to add
git.exe
to your PATH (default settings for the installer are fine).Install CMake. Ensure CMake is in your PATH.
(optional) Install LLVM 8.0
Building the Wasmer Runtime
Wasmer is built with Cargo, 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
You can also download and use a prebuilt LLVM binary
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 page.
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
By default, the Wasmer C API shared library is built with Cranelift as the default backend and JIT enabled. You can generate the C-API for a specific backend with:
Singlepass:
make build-capi-singlepass-jit
Cranelift:
JIT:
make build-capi-cranelift-jit
Native Engine:
make build-capi-cranelift-native
LLVM:
make build-capi-llvm
JIT:
make build-capi-llvm-jit
Native Engine:
make build-capi-llvm-native
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