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


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

playback

kira

Expressive audio library for games

games playback

awedio

A low-overhead and adaptable audio playback library

playback embedded

rubato

Asynchronous resampling library intended for audio data

resampling DSP

realfft

Real-to-complex forward FFT and complex-to-real inverse FFT for Rust

FFT DSP

jack

Real time audio and midi with JACK.

devices

rustfft

High-performance FFT library written in pure Rust.

FFT DSP

hound

A wav encoding and decoding library

streaming frameworks

baseplug

MVC audio plugin framework for rust

frameworks VST2

baseview

low-level window system interface for audio plugin UIs

windowing GUI

nih-plug

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

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

DAWs

HexoSynth

A FLOSS (Open Source) hexagonal modular synthesizer plugin.

synthesizer plugin

vizia

A declarative GUI library written in Rust

GUI frameworks

glicol

Graph-oriented live coding language and music/audio DSP library written in Rust

languages DSP

libpd-rs

Safe rust abstractions over libpd.

languages DSP
See all audio crates ➜

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