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.
asio-sys
Low-level Rust bindings for the Steinberg ASIO SDK.
ASIO (Audio Stream Input/Output) is a low-latency audio API for Windows that provides direct hardware access, bypassing the Windows audio stack for minimal latency.
Overview
asio-sys provides raw FFI bindings to the ASIO SDK, automatically generated using bindgen. This crate is used by cpal's ASIO backend to provide low-latency audio on Windows.
Note: Most users should use cpal's safe, cross-platform API rather than using asio-sys directly.
Features
- Automatic binding generation from ASIO SDK headers
- Low-level access to ASIO driver functionality
- Support for both MSVC and MinGW toolchains
- Automated ASIO SDK download and setup during build
Requirements
Windows
- LLVM/Clang: Required for bindgen to generate bindings
- Install via LLVM downloads or
choco install llvm
- Install via LLVM downloads or
- ASIO SDK: Automatically downloaded during build from Steinberg
- Or set
CPAL_ASIO_DIRenvironment variable to point to a local SDK
- Or set
Build Dependencies
bindgen- Generates Rust bindings from C/C++ headerscc- Compiles the ASIO SDK C++ fileswalkdir- Finds SDK files
Usage
Add to your Cargo.toml:
[]
= "0.2"
Example
use asio_sys as sys;
Environment Variables
CPAL_ASIO_DIR: Path to ASIO SDK directory (optional)- If not set, the SDK is automatically downloaded during build
- Example:
set CPAL_ASIO_DIR=C:\path\to\asiosdk
Platform Support
- Windows (MSVC and MinGW)
- x86_64 (64-bit)
- i686 (32-bit)
ASIO is Windows-only. This crate will not build on other platforms.
Safety
This crate provides raw FFI bindings to C++ code. Almost all functions are unsafe and require careful handling:
- Memory management is manual
- Callbacks must be properly synchronized
- Driver state must be carefully managed
- See ASIO SDK documentation for details
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
The ASIO SDK is owned by Steinberg Media Technologies GmbH. Users must comply with Steinberg's licensing terms.
Contributing
Contributions are welcome! Please submit issues and pull requests to the cpal repository.