[package]
edition = "2021"
rust-version = "1.95.0"
name = "pocketstation"
version = "1.0.2"
build = "build.rs"
include = [
"/Cargo.toml",
"/Cargo.lock",
"/README.md",
"/RELEASE_NOTES_1.0.0.md",
"/RELEASE_NOTES_1.0.1.md",
"/RELEASE_NOTES_1.0.2.md",
"/build.rs",
"/docs/README.md",
"/docs/architecture/overview.md",
"/docs/concepts/signals-and-streams.md",
"/docs/development/compatibility-and-freeze.md",
"/docs/getting-started/rust-quickstart.md",
"/docs/guides/extensions.md",
"/src/**",
"/native/**",
"/include/**",
"/examples/product_quickstart.rs",
"/tests/**",
"/benches/**",
"/proptest-regressions/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Source-aware desktop audio Session SDK"
homepage = "https://github.com/pocketstation-io/pocketstation"
documentation = "https://docs.rs/pocketstation"
readme = "README.md"
keywords = [
"audio",
"capture",
"realtime",
"session",
"webrtc",
]
categories = [
"multimedia::audio",
"api-bindings",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/pocketstation-io/pocketstation"
[package.metadata.pocketstation]
registry-role = "public-product"
[package.metadata.docs.rs]
default-target = "x86_64-unknown-linux-gnu"
targets = []
no-default-features = true
[features]
conformance-fixtures = []
default = ["native-capture"]
internal-testing = []
macos-asp-driver-artifact = []
native-capture = [
"dep:cpal",
"dep:pipewire",
"dep:alsa",
"dep:libc",
"dep:wasapi",
"dep:windows",
"dep:windows-core",
]
[lib]
name = "pocketstation"
crate-type = [
"rlib",
"cdylib",
"staticlib",
]
path = "src/lib.rs"
[[example]]
name = "product_quickstart"
path = "examples/product_quickstart.rs"
[[test]]
name = "abi_codec_cpp_conformance"
path = "tests/abi_codec_cpp_conformance.rs"
[[test]]
name = "abi_session_c_conformance"
path = "tests/abi_session_c_conformance.rs"
[[test]]
name = "capture_callback_source_contract"
path = "tests/capture_callback_source_contract.rs"
[[test]]
name = "capture_hot_path_alloc"
path = "tests/capture_hot_path_alloc.rs"
required-features = ["internal-testing"]
[[test]]
name = "codec_hot_path_alloc"
path = "tests/codec_hot_path_alloc.rs"
required-features = ["internal-testing"]
[[test]]
name = "codec_opus_roundtrip"
path = "tests/codec_opus_roundtrip.rs"
required-features = ["internal-testing"]
[[test]]
name = "conformance_fixture"
path = "tests/conformance_fixture.rs"
[[test]]
name = "core_extension"
path = "tests/core_extension.rs"
[[test]]
name = "external_source"
path = "tests/external_source.rs"
[[test]]
name = "macos_native_ring_contract"
path = "tests/macos_native_ring_contract.rs"
[[test]]
name = "operator_declaration"
path = "tests/operator_declaration.rs"
[[test]]
name = "protocol_compatibility"
path = "tests/protocol_compatibility.rs"
[[test]]
name = "public_api_boundary"
path = "tests/public_api_boundary.rs"
[[test]]
name = "runtime_plan_router_alloc"
path = "tests/runtime_plan_router_alloc.rs"
required-features = ["internal-testing"]
[[test]]
name = "session_facade"
path = "tests/session_facade.rs"
[[bench]]
name = "audio_buffer_pool"
path = "benches/audio_buffer_pool.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "capture_to_stream"
path = "benches/capture_to_stream.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "captured_frame_stream"
path = "benches/captured_frame_stream.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "generated_audio_bridge"
path = "benches/generated_audio_bridge.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "opus_decode"
path = "benches/opus_decode.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "opus_encode"
path = "benches/opus_encode.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "runtime_plan"
path = "benches/runtime_plan.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "session_lifecycle"
path = "benches/session_lifecycle.rs"
harness = false
required-features = ["conformance-fixtures"]
[[bench]]
name = "timing"
path = "benches/timing.rs"
harness = false
required-features = ["internal-testing"]
[[bench]]
name = "typed_edge"
path = "benches/typed_edge.rs"
harness = false
required-features = ["internal-testing"]
[dependencies.hound]
version = "3"
[dependencies.opus]
version = "0.3"
[dependencies.rtrb]
version = "0.3"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
"sync",
"time",
]
[dev-dependencies.assert_no_alloc]
version = "1.1"
default-features = false
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[build-dependencies.cc]
version = "1"
[target.'cfg(target_os = "linux")'.dependencies.alsa]
version = "0.11"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.libc]
version = "0.2"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.pipewire]
version = "0.10"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.cpal]
version = "0.18.1"
optional = true
[target.'cfg(target_os = "windows")'.dependencies.wasapi]
version = "0.23"
optional = true
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.58"
features = [
"implement",
"Win32_Media",
"Win32_Media_Audio",
"Win32_Security",
"Win32_System_Threading",
"Win32_System_Com",
"Win32_System_Variant",
"Win32_System_WinRT",
"Win32_Foundation",
"Security_Authorization_AppCapabilityAccess",
]
optional = true
[target.'cfg(target_os = "windows")'.dependencies.windows-core]
version = "0.58"
optional = true
[profile.bench]
debug = 2
inherits = "release"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1