Crates.io | wasmer-engine-dylib |
lib.rs | wasmer-engine-dylib |
version | 2.3.0 |
source | src |
created_at | 2021-06-02 16:46:18.699741 |
updated_at | 2022-06-06 20:26:48.626471 |
description | Wasmer Dylib Engine |
homepage | |
repository | https://github.com/wasmerio/wasmer |
max_upload_size | |
id | 405396 |
size | 67,235 |
wasmer-engine-dylib
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.
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.