Cross-platform audio in Rust
Go to file
Tom Gowan ffcbc02e52 multi channels 2019-07-05 05:51:25 +10:00
.circleci Add testing on circle-ci (#171) 2017-10-21 15:08:34 +02:00
alsa-sys Bump alsa-sys version number 2017-03-06 15:57:18 +00:00
asio-sys multi channels 2019-07-05 05:51:25 +10:00
examples Refactor `Host` and related traits into a new `traits` module 2019-06-29 14:45:15 +02:00
src multi channels 2019-07-05 05:51:25 +10:00
.gitignore change of branch 2019-07-05 05:51:21 +10:00
.rustfmt.toml Run rustfmt on the code (#162) 2017-10-11 13:24:49 +02:00
.travis.yml Stop publishing on gh-pages 2017-02-10 09:45:41 +01:00
CHANGELOG.md add changelog entries for #248 #254 & #269; update version to 0.9.0 2019-06-06 10:29:52 -05:00
Cargo.toml endian conversion 2019-07-05 05:51:25 +10:00
README.md Update README for addition of host enumeration API 2019-06-25 00:39:51 +02:00
appveyor.yml Remove gnu target to avoid need to install gcc for cc crate 2019-06-21 16:17:58 +02:00

README.md

CPAL - Cross-Platform Audio Library

Build Status Crates.io docs.rs

Low-level library for audio input and output in pure Rust.

This library currently supports the following:

  • Enumerate supported audio hosts.
  • Enumerate all available audio devices.
  • Get the current default input and output devices.
  • Enumerate known supported input and output stream formats for a device.
  • Get the current default input and output stream formats for a device.
  • Build and run input and output PCM streams on a chosen device with a given stream format.

Currently supported backends include:

  • Linux (via ALSA)
  • Windows
  • macOS (via CoreAudio)
  • iOS (via CoreAudio)
  • Emscripten

Note that on Linux, the ALSA development files are required. These are provided as part of the libasound2-dev package on Debian and Ubuntu distributions and alsa-lib-devel on Fedora.