5 unstable releases

0.17.0 May 11, 2020
0.16.2 Mar 12, 2020
0.16.1 Mar 12, 2020
0.16.0 Mar 11, 2020
0.15.0 Mar 4, 2020

#1658 in WebAssembly

MIT license

250KB
6K SLoC

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 by this crate:

Instruction WAT encoder/decoder Binary encoder/decoder Interpreter Comment
arg.get
call-core
s8.from_i32
s8.from_i64
s16.from_i32
s16.from_i64
s32.from_i32
s32.from_i64
s64.from_i32
s64.from_i64
i32.from_s8
i32.from_s16
i32.from_s32
i32.from_s64
i64.from_s8
i64.from_s16
i64.from_s32
i64.from_s64
u8.from_i32
u8.from_i64
u16.from_i32
u16.from_i64
u32.from_i32
u32.from_i64
u64.from_i32
u64.from_i64
i32.from_u8
i32.from_u16
i32.from_u32
i32.from_u64
i64.from_u8
i64.from_u16
i64.from_u32
i64.from_u64
string.lift_memory #memidx is not supported; #encoding is not supported but UTF-8 is assumed
string.lower_memory #memidx is not supported; #encoding is not supported but UTF-8 is assumed
string.size #encoding is not supported but UTF-8 is assumed
record.lift
record.lower
call-adapter
defer-call-core

Dependencies

~1.8–2.5MB
~54K SLoC