Improved docs, adding repo structure and libraries README

This commit is contained in:
Syrus 2019-01-22 11:34:36 -08:00
parent 74875ed554
commit cd284e8a75
2 changed files with 46 additions and 4 deletions

View File

@ -20,12 +20,23 @@ curl https://get.wasmer.io -sSfL | sh
`wasmer` can execute both the standard binary format (`.wasm`) and the text `wasmer` can execute both the standard binary format (`.wasm`) and the text
format defined by the WebAssembly reference interpreter (`.wat`). format defined by the WebAssembly reference interpreter (`.wat`).
Once installed, you will be able to run any wasm module (_including Nginx!_): Once installed, you will be able to run any WebAssembly files (_including Nginx, and Lua!_):
```sh ```sh
# Run Lua
wasmer run examples/lua.wasm
# Run Nginx
wasmer run examples/nginx/nginx.wasm -- -p examples/nginx -c nginx.conf wasmer run examples/nginx/nginx.wasm -- -p examples/nginx -c nginx.conf
``` ```
## Code Structure
Wasmer is structured into different directories:
- [`src`](./src): code related to the wasmer excutable binary itself
- [`lib`](./lib): modularized libraries that Wasmer uses under the hood
## Building & Running ## Building & Running
To build this project you will need Rust and Cargo. To build this project you will need Rust and Cargo.
@ -63,7 +74,6 @@ You can also run integration tests with:
make integration-tests make integration-tests
``` ```
## Roadmap ## Roadmap
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. 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.
@ -72,9 +82,9 @@ Below are some of the goals (written with order) of this project:
- [x] It should be 100% compatible with the [WebAssembly Spectest](https://github.com/wasmerio/wasmer/tree/master/spectests) - [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)_ - [x] It should be fast _(partially achieved)_
- [ ] Support Emscripten calls _(on the works)_ - [x] Support Emscripten calls _(on the works)_
- [ ] Support Rust ABI calls - [ ] Support Rust ABI calls
- [ ] Support GO ABI calls
## Architecture ## Architecture

32
lib/README.md Normal file
View File

@ -0,0 +1,32 @@
# Wasmer Libraries
Wasmer is modularized into different libraries, separated into three main sections:
* [Runtime](#Runtime)
* [Integrations](#Integrations)
* [Backends](#Backends)
## Runtime
The core of Wasmer is the runtime.
It provides the necessary abstractions on top of the WebAssembly specification.
We separated the runtime into two main libraries:
* [runtime-core](./runtime-core/): The main implementation of the runtime
* [runtime](./runtime/): Easy-to-use wrappers on top of runtime-core
## Integrations
The integrations are separated implementations in top of our runtime, that let Wasmer run more WebAssembly files.
Wasmer intends to support different integrations:
* [emscripten](./emscripten): it let us run emscripten-generated WebAssembly files, such as lua or Nginx.
* Go ABI: _we will work on this soon! Would you like to help us? 💪_
* Blazor: _researching period, see [tracking issue](https://github.com/wasmerio/wasmer/issues/97)_
## Backends
The backends let Wasmer generate code from WebAssembly files, in a way that is abstracted from the
IR library itself.
* [clif-backend](./clif-backend/): The integration of Wasmer with Cranelift