Importing and reusing components

This section contains language-specific guides on how to reuse existing WebAssembly components, in particular using an adder component to complete a calculator component.

The adder component has the following WIT interface:

package docs:adder@0.1.0;

interface add {
    add: func(x: u32, y: u32) -> u32;
}

world adder {
    export add;
}

The calculator component has the following interface:

package docs:calculator@0.1.0;

interface calculate {
    enum op {
        add,
    }
    eval-expression: func(op: op, x: u32, y: u32) -> u32;
}

world calculator {
    export calculate;
    import docs:adder/add@0.1.0;
}

world app {
    import calculate;
}

Languages

This guide is implemented for various languages: