View Source API Reference Orb v0.1.1
Modules
Write WebAssembly modules with Elixir.
The main DSL which is imported automatically when you call defw
.
Macros to define WebAssembly functions. Similar to Elixir’s def
and Nx’s defn
.
Adds @global_name support
Type for 32-bit integer.
The operators that work consistently signed or unsigned.
Type for unsigned 32-bit integer interpreted as unsigned 16-bit (double byte).
Type for unsigned 32-bit integer interpreted as an unsigned 8-bit byte.
Custom Orb.CustomType
for pointer to 8-bit integer (byte) in memory.
Custom Orb.CustomType
for pointer to a 32-bit integer in memory.
Type for 64-bit integer.
The operators that work consistently signed or unsigned.
Signed 32-bit integer operators.
Define an interface to be imported into WebAssembly.
DSL for declaring within Elixir module that get converted to (import …)
expressions in WebAssembly.
Work with memory: load, store, declare pages & initial data.
Similar to Rust’s slice but across all memory.
Use Orb.DSL.mut!/1
to get a mutable reference to a global or local.
WebAssembly numeric add
instruction
Operators that work with all number types.
WebAssembly numeric mul
instruction
WebAssembly numeric ne
instruction
WebAssembly numeric sub
instruction
Signed 32-bit integer operators.
Functions for working with the WebAssembly function stack.
A string slice. Represented under the hood as a {:i32, :i32}
tuple, the first element being the base address, and the second element the string length.
A string slice represented as a i64, a compromise for when storing strings as globals (Globals cannot be (i32 i32)
, only single primitives like i32
or i64
).
Unsigned 32-bit integer operators.