Skip to content
v0.1.0-alpha.3

WebAudio meets native VST3

Your browser. Your plugins.One audio graph.

A Rust bridge brings isolated local VST3 processing into real WebAudio graphs.

Open source · Rust + TypeScript · macOS first

WVST / SIGNAL PATH001—003
BROWSERARCHITECTURE STUDY

Keep the audio clock moving.

The AudioWorklet exchanges audio through shared rings without waiting for native processing.

AudioWorklet + SharedArrayBuffer
RUST → WEB AUDIOSELECT A STAGE TO EXPLORE ↗
01 / WEB AUDIO ↔ NATIVE AUDIOVST3 EFFECTS + INSTRUMENTSASYNC BY DESIGN

01 / THE ARCHITECTURE

One audio path. Clear ownership.

The browser owns timing and interface. The bridge owns trust. Each plugin runs in an isolated worker.

Browser

AudioWorklet and shared rings keep the realtime thread non-blocking.

Rust bridge

Pairing, discovery, routing and metrics stay on loopback.

VST3 worker

Native processing is isolated so one plugin cannot take down the bridge.

02 / THE RUNTIME

Designed for the whole signal chain.

Failure isolation

Crash, timeout and quarantine policies are part of the runtime contract.

Real plugin control

Scan classes, mount independent instances, edit parameters and restore state.

Open architecture

Rust crates, a typed Web SDK and versioned protocols keep every boundary inspectable.

03 / GET CONNECTED

From source to sound.

Build the bridge, start the local runtime, then open the rack. Bring a VST3 effect and an audio file.

Follow the setup guide
LOCAL BRIDGETERMINAL
cargo build -p wvst-bridge-server -p wvst-host-worker
WVST_HOST_WORKER=target/debug/wvst-host-worker \
  target/debug/wvst-bridge-server serve

In a second terminal npm run docs:dev

Hear the complete path.

Run the local bridge, choose an audio file and mount a real effect in the browser rack.

Open demo
WVST is an open source Rust and WebAudio bridge for local VST3 processing.