#vst #plugin


VST 2.4 API implementation in rust. Create plugins or hosts.

1 unstable release

Uses old Rust 2015

0.0.1 Sep 7, 2016

#6 in #vst

42 downloads per month

MIT license


rust-vst2 Travis Build Appveyor Build

A library to help facilitate creating VST plugins in rust.

This library is a work in progress and as such does not yet implement all opcodes. It is enough to create basic VST plugins without an editor interface.

Please note: This api may be subject to rapid changes and the current state of this library is not final.

Library Documentation


  • Implement all opcodes
  • Proper editor support (possibly conrod + sdl2?)
  • Write more tests
  • Provide better examples


To create a plugin, simply create a type which implements plugin::Plugin and std::default::Default. Then call the macro plugin_main!, which will export the necessary functions and handle dealing with the rest of the API.

Example Plugin

A simple plugin that bears no functionality. The provided Cargo.toml has a crate-type directive which builds a dynamic library, usable by any VST host.


extern crate vst2;

use vst2::plugin::{Info, Plugin};

struct BasicPlugin;

impl Plugin for BasicPlugin {
    fn get_info(&self) -> Info {
        Info {
            name: "Basic Plugin".to_string(),
            unique_id: 1357, // Used by hosts to differentiate between plugins.


plugin_main!(BasicPlugin); // Important!


name = "basic_vst"
version = "0.0.1"
authors = ["Author <author@example.com>"]

vst2 = "0.0.1"

name = "basicvst"
crate-type = ["dylib"]


~16K SLoC