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 |
#1612 in WebAssembly
250KB
6K
SLoC
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.6MB
~55K SLoC