2018-11-05 13:52:53 +00:00
< p align = "center" > < a href = "https://wasmer.io" target = "_blank" rel = "noopener noreferrer" > < img width = "400" src = "https://raw.githubusercontent.com/WAFoundation/wasmer/master/logo.png" alt = "Wasmer logo" > < / a > < / p >
2018-10-11 19:29:36 +00:00
2018-11-05 13:52:53 +00:00
< p align = "center" >
2018-11-07 11:47:08 +00:00
< a href = "https://circleci.com/gh/wafoundation/wasmer/" > < img src = "https://img.shields.io/circleci/project/github/WAFoundation/wasmer/master.svg" alt = "Build Status" > < / a >
2018-11-05 13:52:53 +00:00
< a href = "https://github.com/WAFoundation/wasmer/blob/master/LICENSE" > < img src = "https://img.shields.io/github/license/WAFoundation/wasmer.svg" alt = "License" > < / a >
< / p >
2018-10-11 19:29:36 +00:00
2018-11-05 13:52:53 +00:00
## Introduction
2018-10-11 19:29:36 +00:00
2018-11-05 13:52:53 +00:00
Wasmer is a Standalone JIT-style WebAsssembly runtime code built on [Cranelift ](https://github.com/CraneStation/cranelift ) code generator engine.
2018-10-11 19:29:36 +00:00
## Usage
2018-11-05 13:52:53 +00:00
`wasmer` can execute both the standard binary format (`.wasm`) and the text
format defined by the WebAssembly reference interpreter (`.wat`).
2018-10-11 19:29:36 +00:00
2018-10-14 21:49:10 +00:00
Once installed, you will be able to run:
```sh
wasmer run my_wasm_file.wasm
```
2018-10-11 19:29:36 +00:00
## Building & Running
To build this project you will need Rust and Cargo.
```sh
# checkout code and associated submodules
2018-10-17 09:31:21 +00:00
git clone https://github.com/wafoundation/wasmer.git
2018-10-11 19:29:36 +00:00
cd wasmer
2018-11-05 18:04:36 +00:00
# Use rust nightly (we use 2018-10-07 as latest are failing)
rustup default nightly-2018-10-07
2018-10-11 19:29:36 +00:00
# install tools
# make sure that `python` is accessible.
cargo install
```
2018-10-14 21:49:10 +00:00
## Testing
2018-11-05 13:52:53 +00:00
Thanks to [spectests ](https://github.com/WAFoundation/wasmer/tree/master/spectests ) we can assure 100% compatibility with the WebAssembly spec test suite.
2018-10-24 10:07:52 +00:00
2018-10-14 21:49:10 +00:00
Tests can be run with:
```sh
cargo test
```
2018-10-24 10:07:52 +00:00
If you need to re-generate the Rust tests from the spectests
you can run:
```sh
make spectests
```
## Roadmap
2018-10-14 21:54:28 +00:00
Wasmer is an open project guided by strong principles, aiming to be modular, flexible and fast. It is open to the community to help set its direction.
2018-10-24 10:07:52 +00:00
Below are some of the goals (written with order) of this project:
2018-11-05 13:52:53 +00:00
- [ ] It should be 100% compatible with the [WebAssembly Spectest ](https://github.com/WAFoundation/wasmer/tree/master/spectests ) (on the works)
2018-10-24 10:07:52 +00:00
- [ ] It should be fast. We can achieve this by caching the function compilations
- [ ] Support Emscripten calls
- [ ] Support Rust ABI calls
2018-10-14 21:54:28 +00:00
2018-10-11 19:29:36 +00:00
## License
MIT/Apache-2.0