Skip to content

Extensibility and plugins ​

Dwara is extensible at four layers: plugin filters that intercept traffic at four defined phases (proxy-wasm modules and native Rust filters, dispatched by one chain), WASM route handlers that generate a response inside a module, extension traits that replace entire subsystems, and a verified plugin registry that supplies remote artifacts. A route can run a native filter and a proxy-wasm filter in sequence; both are plugin entries in the same list, referenced by name.

All four layers are live in every build — there are no cargo features to enable and no license involved. An Extism PDK runtime was previously scaffolded as a third plugin path but was removed before it was ever wired into the dispatch chain, config schema, or runtime — proxy-wasm and native filters are the supported plugin paths, and Extism may be re-introduced in a future milestone if there is demand.

In this section ​

Related, outside this section: Filter-chain ordering documents the eight pipeline stages that the plugin phases hook around — the filter_chain config block validates a custom order but the dataplane runs the fixed order today.

Runnable demo ​

The demos/08-extensibility/ directory in the repository runs a live stack for the features in this section; its README covers prerequisites, test scripts, and teardown.

Where to go next ​