Go to file
2020-03-10 10:37:09 +01:00
src feat(interface-types) Remove the 'input lifetime on Instruction. 2020-03-10 10:37:09 +01:00
tests test(interface-types) Fix all tests based on previous commits. 2020-02-26 15:32:14 +01:00
Cargo.toml Prepare for 0.15.0 release 2020-03-04 12:26:19 -08:00
README.md doc(interface-types) Improve the README.md. 2020-03-09 14:53:11 +01:00

Wasmer logo

Build Status License Join the Wasmer Community Number of downloads from crates.io Read our API documentation

Wasmer Interface Types

Wasmer is a standalone JIT WebAssembly runtime, aiming to be fully compatible with WASI, Emscripten, Rust and Go. Learn more.

This crate is an implementation of the living WebAssembly Interface Types standard.

Encoders and decoders

The wasmer-interface-types crate comes with an encoder and a decoder for the WAT format, and the binary format, for the WebAssembly Interface Types. An encoder writes an AST into another format, like WAT or binary. A decoder reads an AST from another format, like WAT or binary.

Instructions

Very basically, WebAssembly Interface Types defines a set of instructions, used by adapters to transform the data between WebAssembly core and the outside world (learn mode).

Here is the instructions that are implemented:

Instruction WAT encoder Binary encoder WAT decoder Binary decoder Interpreter
arg.get
call-core
memory-to-string
string-to-memory
call-adapter
defer-call-core
i32-to-s8
i32-to-s8x
i32-to-u8
i32-to-s16
i32-to-s16x
i32-to-u16
i32-to-s32
i32-to-u32
i32-to-s64
i32-to-u64
i64-to-s8
i64-to-s8x
i64-to-u8
i64-to-s16
i64-to-s16x
i64-to-u16
i64-to-s32
i64-to-s32x
i64-to-u32
i64-to-s64
i64-to-u64
s8-to-i32
u8-to-i32
s16-to-i32
u16-to-i32
s32-to-i32
u32-to-i32
s64-to-i32
s64-to-i32x
u64-to-i32
u64-to-i32x
s8-to-i64
u8-to-i64
s16-to-i64
u16-to-i64
s32-to-i64
u32-to-i64
s64-to-i64
u64-to-i64