wasm
Executes a function exported by a WASM module for each message.
Introduced in version 4.11.0.
This processor uses Wazero to execute a WASM module (with support for WASI), calling a specific function for each message being processed. From within the WASM module it is possible to query and mutate the message being processed via a suite of functions exported to the module.
This ecosystem is delicate as WASM doesn’t have a single clearly defined way to pass strings back and forth between the host and the module. In order to remedy this we’re gradually working on introducing libraries and examples for multiple languages which can be found in the codebase.
These examples, as well as the processor itself, is a work in progress.
Parallelism
It’s not currently possible to execute a single WASM runtime across parallel threads with this processor. Therefore, in order to support parallel processing this processor implements pooling of module runtimes. Ideally your WASM module shouldn’t depend on any global state, but if it does then you need to ensure the processor is only run on a single thread.
Fields
module_path
The path of the target WASM module to execute.
Type: string
function
The name of the function exported by the target WASM module to run for each message.
Type: string
Default: "process"