{"id":13626286,"url":"https://github.com/RustAudio/vst-rs","last_synced_at":"2025-04-16T14:33:02.024Z","repository":{"id":23926495,"uuid":"100183375","full_name":"RustAudio/vst-rs","owner":"RustAudio","description":"VST 2.4 API implementation in rust. Create plugins or hosts. Previously rust-vst on the RustDSP group.","archived":true,"fork":false,"pushed_at":"2023-06-10T11:48:20.000Z","size":5446,"stargazers_count":1043,"open_issues_count":33,"forks_count":91,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-10T22:17:48.558Z","etag":null,"topics":["audio-plugin","dsp","rust","vst","vst-plugin","vsts"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RustAudio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-08-13T14:46:09.000Z","updated_at":"2025-04-02T08:31:29.000Z","dependencies_parsed_at":"2024-01-14T07:17:50.709Z","dependency_job_id":null,"html_url":"https://github.com/RustAudio/vst-rs","commit_stats":{"total_commits":302,"total_committers":47,"mean_commits":6.425531914893617,"dds":0.6821192052980132,"last_synced_commit":"ab74a5682df4fc08e1f78a28fac12aad1ff5fe0b"},"previous_names":["rust-dsp/rust-vst"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Fvst-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Fvst-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Fvst-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Fvst-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RustAudio","download_url":"https://codeload.github.com/RustAudio/vst-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249250820,"owners_count":21237961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-plugin","dsp","rust","vst","vst-plugin","vsts"],"created_at":"2024-08-01T21:02:14.671Z","updated_at":"2025-04-16T14:33:01.726Z","avatar_url":"https://github.com/RustAudio.png","language":"Rust","readme":"# vst-rs\n[![crates.io][crates-img]][crates-url]\n[![dependency status](https://deps.rs/repo/github/rustaudio/vst-rs/status.svg)](https://deps.rs/repo/github/rustaudio/vst-rs)\n[![Discord Chat][discord-img]][discord-url]\n[![Discourse topics][dc-img]][dc-url]\n\n\u003e **Notice**: `vst-rs` is deprecated.\n\u003e\n\u003e This crate is no longer actively developed or maintained. VST 2 has been [officially discontinued](http://web.archive.org/web/20210727141622/https://www.steinberg.net/en/newsandevents/news/newsdetail/article/vst-2-coming-to-an-end-4727.html) and it is [no longer possible](https://forum.juce.com/t/steinberg-closing-down-vst2-for-good/27722/25) to acquire a license to distribute VST 2 products. It is highly recommended that you make use of other libraries for developing audio plugins and plugin hosts in Rust.\n\u003e\n\u003e If you're looking for a high-level, multi-format framework for developing plugins in Rust, consider using [NIH-plug](https://github.com/robbert-vdh/nih-plug/) or [`baseplug`](https://github.com/wrl/baseplug/). If you're looking for bindings to specific plugin APIs, consider using [`vst3-sys`](https://github.com/RustAudio/vst3-sys/), [`clap-sys`](https://github.com/glowcoil/clap-sys), [`lv2(-sys)`](https://github.com/RustAudio/rust-lv2), or [`auv2-sys`](https://github.com/glowcoil/auv2-sys). If, despite the above warnings, you still have a need to use the VST 2 API from Rust, consider using [`vst2-sys`](https://github.com/RustAudio/vst2-sys) or generating bindings from the original VST 2 SDK using [`bindgen`](https://github.com/rust-lang/rust-bindgen).\n\n`vst-rs` is a library for creating VST2 plugins in the Rust programming language.\n\nThis library is a work in progress, and as such it does not yet implement all\nfunctionality. It can create basic VST plugins without an editor interface.\n\n**Note:** If you are upgrading from a version prior to 0.2.0, you will need to update\nyour plugin code to be compatible with the new, thread-safe plugin API. See the\n[`transfer_and_smooth`](examples/transfer_and_smooth.rs) example for a guide on how\nto port your plugin.\n\n## Library Documentation\n\nDocumentation for **released** versions can be found [here](https://docs.rs/vst/).\n\nDevelopment documentation (current `master` branch) can be found [here](https://rustaudio.github.io/vst-rs/vst/).\n\n## Crate\nThis crate is available on [crates.io](https://crates.io/crates/vst).  If you prefer the bleeding-edge, you can also\ninclude the crate directly from the official [Github repository](https://github.com/rustaudio/vst-rs).\n\n```toml\n# get from crates.io.\nvst = \"0.3\"\n```\n```toml\n# get directly from Github.  This might be unstable!\nvst = { git = \"https://github.com/rustaudio/vst-rs\" }\n```\n\n## Usage\nTo create a plugin, simply create a type which implements the `Plugin` trait. Then call the `plugin_main` macro, which will export the necessary functions and handle dealing with the rest of the API.\n\n## Example Plugin\nA simple plugin that bears no functionality. The provided `Cargo.toml` has a\n`crate-type` directive which builds a dynamic library, usable by any VST host.\n\n`src/lib.rs`\n\n```rust\n#[macro_use]\nextern crate vst;\n\nuse vst::prelude::*;\n\nstruct BasicPlugin;\n\nimpl Plugin for BasicPlugin {\n    fn new(_host: HostCallback) -\u003e Self {\n        BasicPlugin\n    }\n\n    fn get_info(\u0026self) -\u003e Info {\n        Info {\n            name: \"Basic Plugin\".to_string(),\n            unique_id: 1357, // Used by hosts to differentiate between plugins.\n            ..Default::default()\n        }\n    }\n}\n\nplugin_main!(BasicPlugin); // Important!\n```\n\n`Cargo.toml`\n\n```toml\n[package]\nname = \"basic_vst\"\nversion = \"0.0.1\"\nauthors = [\"Author \u003cauthor@example.com\u003e\"]\n\n[dependencies]\nvst = { git = \"https://github.com/rustaudio/vst-rs\" }\n\n[lib]\nname = \"basicvst\"\ncrate-type = [\"cdylib\"]\n```\n\n[crates-img]: https://img.shields.io/crates/v/vst.svg\n[crates-url]: https://crates.io/crates/vst\n[discord-img]: https://img.shields.io/discord/590254806208217089.svg?label=Discord\u0026logo=discord\u0026color=blue\n[discord-url]: https://discord.gg/QPdhk2u\n[dc-img]: https://img.shields.io/discourse/https/rust-audio.discourse.group/topics.svg?logo=discourse\u0026color=blue\n[dc-url]: https://rust-audio.discourse.group\n\n#### Packaging on OS X\n\nOn OS X VST plugins are packaged inside loadable bundles.\nTo package your VST as a loadable bundle you may use the `osx_vst_bundler.sh` script this library provides. \n\nExample: \n\n```\n./osx_vst_bundler.sh Plugin target/release/plugin.dylib\nCreates a Plugin.vst bundle\n```\n\n## Special Thanks\n[Marko Mijalkovic](https://github.com/overdrivenpotato) for [initiating this project](https://github.com/overdrivenpotato/rust-vst2)\n","funding_links":[],"categories":["Rust","Tutorials"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRustAudio%2Fvst-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRustAudio%2Fvst-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRustAudio%2Fvst-rs/lists"}