Please follow this guide to build and test WasmEdge from source code.
$ git clone https://github.com/WasmEdge/WasmEdge.git
$ cd WasmEdge
Our docker image use ubuntu 21.04
as the base.
$ docker pull wasmedge/wasmedge
# Tools and libraries
$ sudo apt install -y \
software-properties-common \
cmake \
libboost-all-dev
# And you will need to install llvm for wasmedgec tool
$ sudo apt install -y \
llvm-dev \
liblld-12-dev
# WasmEdge supports both clang++ and g++ compilers
# You can choose one of them for building this project
$ sudo apt install -y gcc g++
$ sudo apt install -y clang
Our development environment requires libLLVM-12
and >=GLIBCXX_3.4.26
.
If users are using the older operating system than Ubuntu 20.04, please use our special docker image to build WasmEdge. If you are looking for the pre-built binaries for the older operatoring system, we also provide several pre-built binaries based on manylinux* distribution.
Portable Linux Built Distributions Tags | Base Image | Provided Requirements | Docker Image |
---|---|---|---|
manylinux1 |
CentOS 5.11 | GLIBC <= 2.5 CXXABI <= 3.4.8 GLIBCXX <= 3.4.9 GCC <= 4.2.0 |
wasmedge/wasmedge:manylinux1_x86_64 |
manylinux2010 |
CentOS 6 | GLIBC <= 2.12 CXXABI <= 1.3.3 GLIBCXX <= 3.4.13 GCC <= 4.5.0 |
wasmedge/wasmedge:manylinux2010_x86_64 |
manylinux2014 |
CentOS 7 | GLIBC <= 2.17 CXXABI <= 1.3.7 GLIBCXX <= 3.4.19 GCC <= 4.8.0 |
wasmedge/wasmedge:manylinux2014_x86_64 |
If users don't need Ahead-of-Time runtime/compiler support, they can set the CMake option WASMEDGE_BUILD_AOT_RUNTIME
to OFF
.
$ cmake -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_BUILD_AOT_RUNTIME=OFF ..
WasmEdge provides various tools for enabling different runtime environments for optimal performance. After the build is finished, you can find there are several wasmedge related tools:
wasmedge
is for general wasm runtime.wasmedge
executes aWASM
file in interpreter mode or a compiled WASMso
file in ahead-of-time compilation mode.- To disable building all tools, you can set the CMake option
WASMEDGE_BUILD_TOOLS
toOFF
.
wasmedgec
is for ahead-of-timeWASM
compiler.wasmedgec
compiles a generalWASM
file into aso
file.- To disable building the ahead-of-time compiler only, you can set the CMake option
WASMEDGE_BUILD_AOT_RUNTIME
toOFF
. - To disable building all tools, you can set the CMake option
WASMEDGE_BUILD_TOOLS
toOFF
.
libwasmedge_c.so
is the WasmEdge C API shared library.libwasmedge_c.so
provides C API for the ahead-of-time compiler and the WASM runtime.- The APIs about the ahead-of-time compiler will always return failed if the CMake option
WASMEDGE_BUILD_AOT_RUNTIME
is set asOFF
. - To disable building the shared library only, you can set the CMake option
WASMEDGE_BUILD_SHARED_LIB
toOFF
.
ssvm-qitc
is for AI application, supporting ONNC runtime for AI model in ONNX format.- If you want to try
ssvm-qitc
, please refer to ONNC-Wasm project to set up the working environment and run several examples. - And here is our tutorial for ONNC-Wasm project(YouTube Video).
- If you want to try
# After pulling our wasmedge docker image
$ docker run -it --rm \
-v <path/to/your/wasmedge/source/folder>:/root/wasmedge \
wasmedge/wasmedge:latest
(docker)$ cd /root/wasmedge
(docker)$ mkdir -p build && cd build
(docker)$ cmake -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_BUILD_TESTS=ON .. && make -j
The following built-in tests are only available when the build flag WASMEDGE_BUILD_TESTS
sets to ON
.
Users can use these tests to verify the correctness of WasmEdge binaries.
$ cd <path/to/wasmedge/build_folder>
$ LD_LIBRARY_PATH=$(pwd)/lib/api ctest
Next, follow this guide to run WebAssembly bytecode programs in wasmedge
.