About

rust.audio is a collection of resources dedicated to the development of audio applications in the Rust programming language. These topics vary from general DSP, to synthesis, to plugins and associated crates.

Community

Discord

Join Rust Audio on Discord to keep up with audio development within the Rust ecosystem, get help with DSP, collaborate on projects, and everything in-between.
Join Discord


Forums

Visit the RustAudio forums on Discourse


Audio crates

fundsp

Audio processing and synthesis library.

DSP

cpal

Low-level cross-platform audio I/O library in pure Rust.

devices

coremidi

CoreMIDI library for Rust

MIDI

rodio

Audio playback library

MIDI

kira

Expressive audio library for games

games

rubato

Asynchronous resampling library intended for audio data

resampling DSP

realfft

Real-to-complex FFT and complex-to-real iFFT for Rust

FFT DSP

jack

Real time audio and midi with JACK.

devices

rustfft

High-performance FFT library written in pure Rust.

FFT DSP

baseplug

MVC audio plugin framework for rust

frameworks VST2

baseview

low-level window system interface for audio plugin UIs

windowing GUI

nih-plug

Because everything is better when you do it yourself - Rust VST3 and CLAP framework and plugins

frameworks VST3 CLAP

clap-sys

Rust bindings for the CLAP audio plugin API

bindings CLAP

rainout

Cross-platform audio and MIDI IO

devices

creek

Realtime disk streaming IO for audio

streaming

Meadowlark

A (currently incomplete) open-source Digital Audio Workstation, made by musicians, for musicians

DAWs

vizia

A declarative GUI library written in Rust

GUI frameworks

glicol

(Audio) graph-oriented live coding language and music DSP library written in Rust

languages DSP

libpd-rs

Safe rust abstractions over libpd.

languages DSP

Resources

Audio plugin formats

VST

GPLv3 or Proprietary ➜

VST can refer to several different versions of the VST format by Steinberg. VST2 was one of the most common standards, but is now unlicensed. Instead, VST3 is recommended and is generally supported in most DAWs. Note that the Rust vst3-sys crate currently relies on GPLv3 code.

Crates

AudioUnit

Proprietary ➜

AudioUnit (AU) is only available on Apple platforms. AU v2 is simlar to VST, and AU v3 follows an Apple framework approach, which is harder to implement without Apple tools. Currently, no Rust libraries implement the AudioUnit standard.

Resources

LV2

ISC ➜

LV2 is only supported on Linux with a few exceptions. One interesting feature is that all LV2 plugin hosts and plugins are backwards compatible with previous versions.

Resources

Crates

CLAP

MIT ➜

CLAP is a relatively new plugin format with permissive licensing. It does not currently have wide support outside of Bitwig.

Crates


DSP resources

General

Bandlimited synthesis

Structures and algorithms

Misc