MCPcopy Index your code
hub / github.com/RustAudio/rust-portaudio

github.com/RustAudio/rust-portaudio @v0.8.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.0 ↗ · + Follow
171 symbols 294 edges 18 files 84 documented · 49%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

rust-portaudio

Crates.io docs.rs

License Build Status

PortAudio bindings and wrappers for Rust.

PortAudio is a free, cross-platform, open-source, audio I/O library.

rust-portaudio is in maintenance mode. Consider using CPAL instead.

Installation

rust-portaudio will try to detect portaudio on your system and, failing that (or if given the PORTAUDIO_ONLY_STATIC environment variable on the build process), will download and build portaudio statically. If this fails please let us know! In the mean-time, you can manually download and install PortAudio yourself.

On Mac OS X, you may need to install manually portaudio and pkg-config (using brew, run brew install portaudio and brew install pkg-config)

rust-portaudio is built using cargo, so just type cargo build at the root of the rust-portaudio repository.

You can build the tests and examples with cargo test, and the documentation with cargo doc.

Extension points exported contracts — how you extend this code

SamplePrivate (Interface)
internal private trait for Sample format management [5 implementers]
src/lib.rs
Settings (Interface)
Types used to open a **Stream** via the [**PortAudio::open_blocking_stream**](../struct.PortAudio.html#method.open_block [3 …
src/stream.rs
MacCore (Interface)
(no doc) [1 implementers]
src/ext/mac_core.rs
Sample (Interface)
public trait to constraint pa::Stream for specific types [5 implementers]
src/lib.rs
Flow (Interface)
There are three possible **Flow**s available for a **Stream**: [**Input**](./struct.Input), [**Out**](./struct.Output) a [3 …
src/stream.rs
Asio (Interface)
(no doc) [1 implementers]
src/ext/asio.rs
Mode (Interface)
There are two **Mode**s with which a **Stream** can be set: [**Blocking**](./struct.Blocking) and [**NonBlocking**](./st [2 …
src/stream.rs
Reader (Interface)
Streams** that can be read by the user. [2 implementers]
src/stream.rs

Core symbols most depended-on inside this repo

device_info
called by 9
src/lib.rs
run
called by 7
rust-portaudio-sys/build.rs
start
called by 5
src/stream.rs
stop
called by 5
src/stream.rs
default_input_device
called by 4
src/lib.rs
default_output_device
called by 4
src/lib.rs
is_duplex_format_supported
called by 4
src/lib.rs
open_non_blocking_stream
called by 4
src/lib.rs

Shape

Method 78
Function 45
Class 36
Interface 9
Enum 3

Languages

Rust100%

Modules by API surface

src/stream.rs62 symbols
src/lib.rs44 symbols
rust-portaudio-sys/src/portaudio.rs15 symbols
src/types.rs13 symbols
rust-portaudio-sys/build.rs7 symbols
src/ext/asio.rs5 symbols
src/ext/mac_core.rs4 symbols
examples/fuzz.rs4 symbols
examples/blocking.rs3 symbols
src/error.rs2 symbols
rust-portaudio-sys/src/lib.rs2 symbols
examples/sine.rs2 symbols

For agents

$ claude mcp add rust-portaudio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact