https://github.com/helgesverre/rust-vst3-host
https://github.com/helgesverre/rust-vst3-host
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/helgesverre/rust-vst3-host
- Owner: HelgeSverre
- Created: 2025-02-05T18:17:23.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-07-15T13:03:27.000Z (3 months ago)
- Last Synced: 2025-07-18T10:54:21.449Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 37.7 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VST3 Host in Rust
Experimental VST3 plugin host written in Rust. Uses unsafe code and raw pointers for direct VST3 SDK integration.
## What works
- Audio streaming with VST3 plugins
- MIDI input/output
- Plugin GUIs (macOS/Windows)
- Parameter control
- Plugin discovery## Building
```bash
git clone https://github.com/HelgeSverre/rust-vst3-host.git
cd rust-vst3-host
git submodule update --init --recursive
cargo build --release
cargo run
```## Implementation Notes
This host prioritizes working code over safe code:
- Extensive `unsafe` blocks for VST3 interop
- Raw pointer manipulation for audio buffers
- Direct COM interface implementation
- Manual memory managementThe VST3 SDK is inherently unsafe, so safe abstractions add complexity without much benefit for this experimental implementation.
## Architecture
```
[UI Thread] ←→ [Shared State] ←→ [Audio Thread]
↓ ↓ ↓
Parameters MIDI Queue VST3 Process
```- UI thread handles GUI and plugin loading
- Audio thread processes VST3 in real-time
- Thread-safe communication via `Arc>`## Warning
This is experimental code for learning purposes. Extensive use of unsafe Rust, minimal error handling, and not optimized for production use.