2018-11-22 06:15:13 +00:00
|
|
|
<p align="center"><a href="https://wasmer.io" target="_blank" rel="noopener noreferrer"><img width="400" src="https://raw.githubusercontent.com/wasmerio/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-22 06:15:13 +00:00
|
|
|
<a href="https://circleci.com/gh/wasmerio/wasmer/"><img src="https://img.shields.io/circleci/project/github/wasmerio/wasmer/master.svg" alt="Build Status"></a>
|
|
|
|
<a href="https://github.com/wasmerio/wasmer/blob/master/LICENSE"><img src="https://img.shields.io/github/license/wasmerio/wasmer.svg" alt="License"></a>
|
2018-11-05 13:52:53 +00:00
|
|
|
</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-22 23:52:57 +00:00
|
|
|
Wasmer is a Standalone JIT-style WebAssembly 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-11-22 06:15:13 +00:00
|
|
|
git clone --recursive https://github.com/wasmerio/wasmer.git
|
2018-10-11 19:29:36 +00:00
|
|
|
cd wasmer
|
|
|
|
|
|
|
|
# install tools
|
|
|
|
# make sure that `python` is accessible.
|
|
|
|
cargo install
|
|
|
|
```
|
|
|
|
|
2018-10-14 21:49:10 +00:00
|
|
|
## Testing
|
|
|
|
|
2018-11-22 06:15:13 +00:00
|
|
|
Thanks to [spectests](https://github.com/wasmerio/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
|
2018-11-15 21:30:00 +00:00
|
|
|
make test
|
2018-10-14 21:49:10 +00:00
|
|
|
```
|
|
|
|
|
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-22 06:15:13 +00:00
|
|
|
- [x] It should be 100% compatible with the [WebAssembly Spectest](https://github.com/wasmerio/wasmer/tree/master/spectests)
|
|
|
|
- [x] It should be fast _(partially achieved)_
|
2018-11-22 06:12:34 +00:00
|
|
|
- [ ] Support Emscripten calls _(on the works)_
|
2018-10-24 10:07:52 +00:00
|
|
|
- [ ] 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
|