Skip to main content


Build a module#

  • Use the #[holium_bindgen] procedural macro on every public functions and structures that should be exported.
  • Compile using cargo build --target wasm32-unknown-unknown --release
  • Wasm bytecode can be found in <crate_root>/target/wasm32-unknown-unknown/release/<crate_name>.wasm

How does it work?#

  • Adds Serialize & Deserialize derive code for exported structure
  • Implements GenerateNode trait to all exported structures
  • Generates wrapper function around exported function that will handle input payload and output payload

In execution :

  • Receive data node as CBOR serialized from the host
  • Deserialize data node and fuse it with key node to generate input payload
  • Run client function with corresponding arguments
  • Convert return value to data node
  • Serialize data node as CBOR and send it to the host