// the find
robbert-vdh/nih-plug
Rust VST3 and CLAP plugin framework and plugins - because everything is better when you do it yourself
NIH-plug is a Rust framework for writing VST3 and CLAP audio plugins without the usual C++ ceremony. It handles the plugin format ABIs, parameter management, GUI integration, and bundling so you can focus on DSP. Worth noting upfront: the original author has put the framework in maintenance mode and points new users to a community fork.
The parameter system is genuinely well-designed — you define params as struct fields with `#[derive(Params)]` and get smoothing, serialization, and DAW automation wiring for free, with no manual indexing. CLAP support is first-class, including polyphonic modulation and remote control pages, which most Rust plugin frameworks treat as an afterthought. The `cargo xtask bundle` bundler auto-detects plugin formats and handles cross-compilation, which eliminates a painful manual step. The included plugins (Spectral Compressor, Crossover, Diopser) are real DSP work — they serve as credible examples of what the framework can actually do.
The framework is in maintenance mode on the canonical repo, which is a real adoption risk — bug fixes and new CLAP spec features are happening in the community fork, not here. VST3 support pulls in GPLv3 bindings, meaning any VST3 plugin you ship must be GPL-compatible; the README buries this and it will surprise people expecting to write proprietary plugins. macOS support is described as 'limited testing,' and the CI mostly validates it through Wine/yabridge rather than real Mac hardware. No AU (Audio Units) support, so macOS-native DAWs like Logic are out entirely.