kithara-decode 0.0.1-alpha2

Pluggable audio decode (Symphonia / Apple / Android) to PCM.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "kithara-decode"
version = "0.0.1-alpha2"
authors = ["kithara contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pluggable audio decode (Symphonia / Apple / Android) to PCM."
readme = "README.md"
keywords = [
    "audio",
    "decoder",
    "codec",
    "pcm",
    "hls",
]
categories = ["multimedia::audio"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/zvuk/kithara"
resolver = "2"

[package.metadata.cargo-machete]
ignored = ["hotpath"]

[features]
android = []
apple = [
    "dep:core-foundation",
    "dep:core-foundation-sys",
    "dep:symphonia-core",
    "dep:symphonia-format-isomp4",
]
default = [
    "symphonia",
    "fdk-aac",
]
fdk-aac = [
    "symphonia",
    "dep:symphonia-core",
    "dep:fdk-aac",
]
mock = []
perf = [
    "dep:hotpath",
    "hotpath/hotpath",
]
probe = []
symphonia = ["dep:symphonia"]

[lib]
name = "kithara_decode"
path = "src/lib.rs"

[dependencies.bon]
version = "3.9"

[dependencies.derive_more]
version = "2.1"
features = [
    "from",
    "into",
    "try_from",
    "display",
    "as_ref",
    "deref",
    "deref_mut",
    "constructor",
    "is_variant",
    "from_str",
]

[dependencies.fdk-aac]
version = "0.8.0"
optional = true

[dependencies.hotpath]
version = "0.16.1"
optional = true

[dependencies.kithara-bufpool]
version = "0.0.1-alpha2"

[dependencies.kithara-platform]
version = "0.0.1-alpha2"

[dependencies.kithara-stream]
version = "0.0.1-alpha2"

[dependencies.kithara-test-macros]
version = "0.0.1-alpha2"

[dependencies.kithara-test-utils]
version = "0.0.1-alpha2"

[dependencies.num-traits]
version = "0.2"
default-features = false

[dependencies.re_mp4]
version = "0.4.0"

[dependencies.smallvec]
version = "1"

[dependencies.symphonia]
version = "0.6.0"
features = [
    "all",
    "opt-simd",
]
optional = true

[dependencies.symphonia-core]
version = "0.6.0"
optional = true

[dependencies.thiserror]
version = "2.0.18"

[dependencies.tracing]
version = "0.1.44"

[dependencies.unimock]
version = "0.6"
features = ["std"]

[dev-dependencies.kithara-storage]
version = "0.0.1-alpha2"

[dev-dependencies.wasm-bindgen-test]
version = "0.3"

[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.core-foundation]
version = "0.10"
optional = true

[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.core-foundation-sys]
version = "0.8"
optional = true

[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.symphonia-format-isomp4]
version = "0.6.0"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]

[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.22"

[target.'cfg(target_os = "android")'.dependencies.ndk-context]
version = "0.1.1"

[lints.clippy]
allow_attributes = "deny"
approx_constant = "warn"
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_precision_loss = "warn"
cast_sign_loss = "warn"
cloned_instead_of_copied = "deny"
cognitive_complexity = "warn"
default_constructed_unit_structs = "warn"
default_trait_access = "warn"
derivable_impls = "warn"
derive_ord_xor_partial_ord = "warn"
derive_partial_eq_without_eq = "warn"
derived_hash_with_manual_eq = "warn"
doc_markdown = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
flat_map_option = "warn"
ignored_unit_patterns = "allow"
impl_trait_in_params = "warn"
inconsistent_struct_constructor = "warn"
inherent_to_string = "warn"
items_after_statements = "warn"
manual_let_else = "warn"
manual_map = "deny"
map_identity = "deny"
map_unwrap_or = "warn"
match_same_arms = "warn"
match_wildcard_for_single_variants = "warn"
missing_errors_doc = "warn"
missing_fields_in_debug = "warn"
missing_panics_doc = "warn"
must_use_candidate = "warn"
mut_mut = "warn"
needless_borrow = "deny"
needless_for_each = "warn"
needless_lifetimes = "deny"
needless_pass_by_value = "warn"
needless_range_loop = "deny"
non_canonical_partial_ord_impl = "warn"
option_if_let_else = "warn"
or_fun_call = "warn"
partialeq_ne_impl = "warn"
ptr_arg = "deny"
question_mark = "deny"
redundant_closure_for_method_calls = "warn"
redundant_else = "warn"
search_is_some = "deny"
semicolon_if_nothing_returned = "warn"
significant_drop_tightening = "warn"
single_match_else = "warn"
to_string_trait_impl = "warn"
too_many_arguments = "warn"
too_many_lines = "warn"
trivially_copy_pass_by_ref = "warn"
type_complexity = "warn"
undocumented_unsafe_blocks = "deny"
unnecessary_wraps = "warn"
unused_self = "warn"
unwrap_used = "deny"
use_self = "warn"

[lints.rust]
unreachable_pub = "warn"
unused_qualifications = "warn"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(rtsan)"]

[lints.rustdoc]
broken_intra_doc_links = "deny"