audiofox 1.0.0

Cross platform audio capture made easy!
docs.rs failed to build audiofox-1.0.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: audiofox-1.1.0

Audiofox, the audio capturer!

MSRV 1.88+ Documentation Library version Node version License

Audiofox is a cross-platform audio library that provides a unified interface for listing and capturing from application audio sources on Linux, macOS, and Windows. It can be used directly in Rust programs, or in Node apps with in-house bindings and pre-built binaries available on Codeberg.

Features

Audiofox has five simple commands, which behave consistently across all platforms:

  1. audiofox::start() - Initialize and receive an AudioManager.
  2. AudioManager::list() - Receive a list of AudioSource.
  3. AudioManager::link() - Link to one or more AudioSource. If successful, start streaming audio.
  4. LinkHandle:unlink() - End the stream and clean up its resources.
  5. AudioManager::stop() - Stop the AudioManager and clean up its resources.

These commands are all you need to enumerate capturable apps and receive isolated audio from them. You can create any number of AudioManager, link to any number of apps, and do not need any special knowledge to use Audiofox.

Bindings

Audiofox has a dedicated crate for bindings that extend its usage beyond Rust. Audiofox makes an effort to streamline this process, with simple structs and transparent representations where possible.

Node-API (Node.js, Electron, etc.)

Audiofox provides pre-built binaries that are ready to use with apps targeting the Node.js runtime. You can build these binaries manually in bindings/node, and try a reference implementation of app-isolated screenshare audio with npm start. This reference is extensively documented, and can help you use Audiofox in your own projects.

Examples

The flagship example of the Audiofox library is an interactive source selector and audio visualizer. You can try it on your machine with cargo run --examples visualizer. For a simple, non-interactive version, see visualizer-legacy.

Minimum Supported Rust Version (MSRV)

Audiofox has an MSRV of 1.88.0.

This library intends to support Rust versions released within at least the last 12 months. Additionally, the MSRV will only be increased if required, and will coincide with a minor version change.

More Information

CREDITS.md - Acknowledgements, special thanks.

DEVELOPMENT.md - Building, contributing, project structure.

IDEAS.md - Ideas for the future of Audiofox.

INSTALLING.md - Installation instructions.

LICENSE.md - The project's official license.