mirror of
https://github.com/fluencelabs/wasmer
synced 2025-03-16 16:20:49 +00:00
1382: Test Refactor r=syrusakbary a=syrusakbary # Description This PR is the continuation of #1380. It refactors our testing infrastructure based on various points: * There is no longer a "default compiler" on tests * Tests are automatically generated for: emscripten and wasi * It accelerates testing into multiple threads when possible (with the exception of the llvm backend) * It automatically detects the backends available in the host Summary of changes: * [x] Removed all extra logic for test creation in emscripten test generator * [x] Removed all extra logic for test creation in the wasi test generator * [x] Divided wasmer wast test in different files (under `tests/custom/`) * [x] Refactored trap asserts using the wast format * [x] Improved the build script by adding emscripten and wasi test generators (separated from build) * [x] Improved WASI errors to be Rust error types (by deriving from `thiserror::Error`) * [x] Fixed toolchain error creation * [x] Removed leaking of testing logic from generators into build * [x] Refactored import tests to be compatible with multiple backends * [x] Improved wasmer binary to work even when no backends are set (useful for testing without any backend available). * [x] Removed assumption that Cranelift will be the default in the `wasmer` binary * [x] Migrated middleware # Review - [x] Add a short description of the the change to the CHANGELOG.md file Co-authored-by: Syrus <me@syrusakbary.com> Co-authored-by: Syrus Akbary <me@syrusakbary.com>
Wasmer is a standalone WebAssembly runtime:
- Universal: Wasmer is available in Linux, macOS and Windows (for both Desktop and ARM)
- Fast: Wasmer aims to run WebAssembly at near-native speed
- Pluggable: Wasmer can be used from almost any programming language
- Safe: supporting WASI and Emscripten
It is used to run software fast, universally and safely: standalone applications and universal libraries.
Contents
Quickstart
Get started with Wasmer:
1. Install Wasmer
curl https://get.wasmer.io -sSfL | sh
Note: Wasmer is also available on Windows
Alternative: Install with Homebrew
brew install wasmer
2. Use Wasmer
Download a WASM file, and use it universally! You can start with QuickJS: qjs.wasm
wasmer qjs.wasm
3. Next steps
Here is what you can do next:
Language Integrations
Wasmer runtime can be used as a library embedded in different languages, so you can use WebAssembly anywhere 🎉
Language | Docs | Author(s) | Maintenance | Release | Stars | |
---|---|---|---|---|---|---|
Rust | Docs | Wasmer | actively developed | |||
C/C++ | Docs | Wasmer | actively developed | |||
Python | Docs | Wasmer | actively developed | |||
Go | Docs | Wasmer | actively developed | |||
PHP | Docs | Wasmer | actively developed | |||
Ruby | Docs | Wasmer | actively developed | |||
Postgres | Wasmer | actively developed | ||||
JavaScript | Docs | Wasmer | actively developed | |||
C#/.Net | Docs | Miguel de Icaza | actively developed | |||
R | Docs | Dirk Schumacher | actively developed | |||
![]() |
Elixir | Docs | Philipp Tessenow | actively developed | ||
❓ | your language is missing? |
Contribute
We welcome any form of contribution, especially from new members of our community 💜
You can check how to build the Wasmer runtime in our awesome docs!
Testing
Test you want? The Wasmer docs will show you how.
Community
Wasmer has an amazing community developers and contributors. Welcome, please join us! 👋
Channels
Languages
WebAssembly
43.1%
Rust
40.8%
C
12.9%
C++
2.3%
Shell
0.4%
Other
0.2%