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.
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.
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 more).
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 |
❌ | ❌ | ❌ |