RS VST Host
Overview
Section titled “Overview”RS VST Host is a VST3 plugin host written entirely in Rust. It can discover, load, and run VST3 audio plugins from the command line or through a graphical interface built with egui. The project demonstrates deep systems programming — from COM interop and real-time audio to signal-handler-based crash isolation.
Features
Section titled “Features”- Plugin scanning — Discover VST3 plugins in standard OS directories with metadata extraction and JSON caching
- Real-time audio — Load and run plugins with real-time audio processing via
cpal - MIDI input — Connect MIDI devices to send notes to instrument plugins via
midir - Graphical interface — GUI using
egui/eframewith plugin browser, rack view, parameter editors, device selection, and session save/load - Plugin crash sandbox — Signal-handler-based crash isolation: if a plugin crashes, the host recovers gracefully and continues running
- Process-per-plugin sandboxing — Optional process isolation where each plugin runs in its own child process with POSIX shared memory for audio and Unix sockets for control IPC
- Multi-plugin routing graph — DAG-based audio routing model with topological sort, cycle detection, and visual routing editor with Bézier curve connections
- Preset management — Save, load, and list user presets per plugin with base64-encoded state blobs
- Latency compensation — Sample-accurate delay lines for compensating plugin processing latency in multi-plugin chains
- GUI crash isolation — The GUI runs in a separate child process; if a plugin crashes the GUI, the supervisor relaunches it while audio continues
Testing
Section titled “Testing”The project includes 1,414 tests (763 unit + 651 integration) covering COM struct layouts, audio pipeline, MIDI translation, IPC protocol, plugin sandboxing, and GUI state. 109 tests also pass under Miri for undefined behavior detection, and 564 pass under AddressSanitizer for memory safety verification.
Tech Stack
Section titled “Tech Stack”| Language | Rust (99.5%) |
| Audio I/O | cpal |
| MIDI | midir |
| VST3 | vst3-rs (coupler-rs) |
| GUI | egui / eframe |
| Testing | Divan benchmarks, Miri, ASan |
Source Code
Section titled “Source Code”The source code is available on the project’s GitHub repository.
Related Projects
Section titled “Related Projects”- Compressor Plugin — Audio dynamics plugin written in C++
- Monster — Stereo field manipulation plugin
- Sidechain Compressor — Web Audio sidechain compressor worklet