web-audio-api 1.7.0

A pure Rust implementation of the Web Audio API, for use in non-browser contexts
Documentation
[package]
name = "web-audio-api"
version = "1.7.0"
authors = ["Otto <otto@ot-to.nl>"]
edition = "2021"
description = "A pure Rust implementation of the Web Audio API, for use in non-browser contexts"
readme = "README.md"
repository = "https://github.com/orottier/web-audio-api-rs"
keywords = ["web-audio-api", "audio", "sound", "dsp"]
license = "MIT"
categories = ["multimedia::audio"]
include = [
    "/resources",
    "/src",
    "LICENSE",
    "README.md",
]
rust-version = "1.86"

[dependencies]
almost = "0.2.0"
arc-swap = "1.6"
arrayvec = "0.7"
fft-convolver = "0.3"
cpal = { version = "0.18", optional = true }
creek = { version = "1.2", default-features = false, features = [
    "decode",
    "decode-all",
    "encode-wav",
] }
crossbeam-channel = "0.5"
cubeb = { version = "0.34", optional = true }
dasp_sample = "0.11"
float_eq = "1.0"
futures-channel = { version = "0.3.30", features = ["sink"] }
futures-core = { version = "0.3.30", default-features = false }
futures-util = { version = "0.3.30", default-features = false, features = [
    "sink",
] }
hound = "3.5"
hrtf = "0.9"
llq = "0.1.1"
log = "0.4"
num-complex = "0.4"
realfft = "3.3"
rubato = "0.16"
smallvec = "1.11"
symphonia = { version = "0.6", default-features = false, features = [
    "all",
    "opt-simd",
] }
vecmath = "1.0"

[target.'cfg(any(target_arch = "x86", target_arch = "x86_64", target_arch = "aarch64"))'.dependencies]
no_denormals = "0.3"

[dev-dependencies]
futures = { version = "0.3.30", features = ["executor"] }
alloc_counter = "0.0.4"
criterion = "0.8"
env_logger = "0.11"
iai = { git = "https://github.com/sigaloid/iai", rev = "d56a597" }
rand = "0.10"
paste = "1.0.14"

# Uncomment the following lines to enable debug symbols
# during CPU profiling
# [profile.release]
# debug = true

[[bench]]
name = "my_benchmark"
# The path is required for excluding /benches from the package.
# See also: https://users.rust-lang.org/t/cargo-publish-with-excluded-benchmark-fails-validation/53444/2
path = "benches/my_benchmark.rs"
harness = false

[features]
default = ["cpal"]

# Expose structured runtime diagnostics for AudioContext and the render graph.
diagnostics = []

# Make AudioWorklet inputs follow the Web Audio spec for inactive inputs:
# inputs[n] is an empty slice when no connected source is actively processing.
# This is opt-in for v1 because existing processors may assume a stable channel count.
spec-compliant-worklet-inputs = []

cpal = ["dep:cpal"]
cubeb = ["dep:cubeb"]
cpal-jack = ["cpal", "cpal/jack"]
cpal-pipewire = ["cpal", "cpal/pipewire"]
cpal-asio = ["cpal", "cpal/asio"]
iai = []

# Legacy codec feature names kept for backwards compatibility.
# Decoding support is no longer split by file format; all supported Symphonia
# and Creek decoders are enabled unconditionally.
mp3 = []
ogg = []
flac = []
wav = []
aac = []
m4a = []
alac = []