10 releases (6 stable)

2.3.0 Jun 6, 2022
2.2.1 Mar 16, 2022
2.2.0 Feb 28, 2022
2.2.0-rc1 Jan 28, 2022
2.0.0 Jun 16, 2021

#1202 in WebAssembly

Download history 18365/week @ 2023-08-03 17299/week @ 2023-08-10 18567/week @ 2023-08-17 14305/week @ 2023-08-24 12441/week @ 2023-08-31 11857/week @ 2023-09-07 12503/week @ 2023-09-14 11220/week @ 2023-09-21 9193/week @ 2023-09-28 9443/week @ 2023-10-05 9709/week @ 2023-10-12 12838/week @ 2023-10-19 9388/week @ 2023-10-26 9731/week @ 2023-11-02 11568/week @ 2023-11-09 8491/week @ 2023-11-16

41,344 downloads per month
Used in 23 crates (via wasmer-asml-fork)

MIT license

18K SLoC

wasmer-engine-dylib Build Status Join Wasmer Slack MIT License

The Wasmer Dylib engine is usable with any compiler implementation based on wasmer-compiler that is able to emit Position-Independent Code (PIC).

After the compiler generates the machine code for the functions, the Dylib Engine generates a shared object file and links it via dlsym so it can be usable by the wasmer API.

This allows Wasmer to achieve blazing fast native startup times.

Note: you can find a full working example using the Dylib engine here.

Difference with wasmer-engine-universal

The Dylib Engine and Universal Engine mainly differ on how the Modules are loaded/stored. Using the same compilers, both will have the same runtime speed.

However, the Dylib Engine uses the Operating System shared library loader (via dlopen) and as such is able to achieve a much faster startup time when deserializing a serialized Module.


The wasmer-engine-dylib crate requires a linker available on your system to generate the shared object file.

We recommend having gcc or clang installed.

Note: when cross-compiling to other targets, clang will be the default command used for compiling.

You can install LLVM (that provides clang) easily on your Debian-like system via this command:

bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"

Or in macOS:

brew install llvm

Or via any of the pre-built binaries that LLVM offers.


~271K SLoC