View Source API Reference Orb v0.1.1

Modules

Orb

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.