mirror of
https://github.com/fluencelabs/wasmer
synced 2024-12-13 06:15:33 +00:00
20d1023abe
* fix(emscripten) Remove unused imports. This patch removes unused imports reported by `rustc` as warnings. * fix(emscripten) Allow unreachable patterns in `_clock_gettime`. The compiler thinks `CLOCK_MONOTONIC_COARSE` is unreachable, which is not always the case. Add an attribute to allow unreachable patterns to remove the warning. * fix(emscripten) Rename unused variables. This patch renames various unused variables by appending an underscore to them. * fix(emscripten) Declare `table` as immutable. The `table` variable in `EmscriptenGlobals::new` was declared as mutable, but it's never mutated. * fix(emscripten) Remove an unnecessary `unsafe` block. * fix(emscripten) Remove duplicate definition of `SO_NOSIGPIPE`. The `SO_NOSIGPIPE` constant is defined in `syscalls/mod.rs` and `syscalls/unix.rs`. It's never used in the first case. We can safely remove it in this file, and keep it in `unix.rs`. * fix(emscripten) `read_string_from_wasm` is used only on Windows. Mark `read_string_from_wasm` as possible deadcode, since it's used only on Windows. * fix(emscripten) Remove `DYNAMICTOP_PTR_DIFF`, `stacktop`, `stack_max`, `dynamic_base` and `dynamic_ptr`. Four functions and one constant are used together but never used inside or outside this file. They are deadcode. * fix(emscripten) Remove `infinity` and `nan` fields of `EmscriptenGlobalsData`. Those fields are never used. * fix(emscripten) Allow non snake case in `emscripten_target.rs`. Many functions in this file don't follow the snake case style for Rust function names. The reason is that we want the names to match the emscripten symbol names; even if a mapping is done in `lib.rs`, it's easier to get the same names. * fix(emscripten) Rename `STATIC_TOP` to `static_top`. This variable is not a constant. |
||
---|---|---|
.. | ||
clif-backend | ||
emscripten | ||
llvm-backend | ||
runtime | ||
runtime-c-api | ||
runtime-core | ||
spectests | ||
win-exception-handler | ||
.gitignore | ||
README.md |
Wasmer Libraries
Wasmer is modularized into different libraries, separated into three main sections:
Runtime
The core of Wasmer is the runtime, which provides the necessary abstractions to create a good user experience when embedding.
The runtime is divided into two main libraries:
- runtime-core: The main implementation of the runtime.
- runtime: Easy-to-use API on top of
runtime-core
.
Integrations
The integration builds on the Wasmer runtime and allow us to run WebAssembly files compiled for different environments.
Wasmer intends to support different integrations:
- emscripten: run Emscripten-generated WebAssembly files, such as Lua or nginx.
- Go ABI: we will work on this soon! Want to give us a hand? ✋
- Blazor: research period, see tracking issue
Backends
The Wasmer runtime is designed to support multiple compiler backends, allowing the user to tune the codegen properties (compile speed, performance, etc) to best fit their use case.
Currently, we support multiple backends for compiling WebAssembly to machine code:
- clif-backend: Cranelift backend
- llvm-backend: LLVM backend