[package]
edition = "2024"
name = "kithara-file"
version = "0.0.1-alpha2"
authors = ["kithara contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Progressive download and playback for MP3, AAC, FLAC and more."
readme = "README.md"
keywords = [
"audio",
"streaming",
"mp3",
"aac",
"download",
]
categories = [
"multimedia::audio",
"network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/zvuk/kithara"
resolver = "2"
[features]
default = []
perf = [
"dep:hotpath",
"hotpath/hotpath",
"kithara-net/perf",
]
[lib]
name = "kithara_file"
path = "src/lib.rs"
[dependencies.bon]
version = "3.9"
[dependencies.futures]
version = "0.3.32"
[dependencies.hotpath]
version = "0.16.1"
optional = true
[dependencies.kithara-abr]
version = "0.0.1-alpha2"
[dependencies.kithara-assets]
version = "0.0.1-alpha2"
[dependencies.kithara-events]
version = "0.0.1-alpha2"
[dependencies.kithara-net]
version = "0.0.1-alpha2"
[dependencies.kithara-platform]
version = "0.0.1-alpha2"
[dependencies.kithara-storage]
version = "0.0.1-alpha2"
[dependencies.kithara-stream]
version = "0.0.1-alpha2"
[dependencies.kithara-test-utils]
version = "0.0.1-alpha2"
[dependencies.re_mp4]
version = "0.4.0"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokio-util]
version = "0.7.18"
features = ["rt"]
default-features = false
[dependencies.tracing]
version = "0.1.44"
[dependencies.url]
version = "2.5.8"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.wasm-bindgen-test]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-util]
version = "0.7.18"
features = ["full"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.axum]
version = "0.8.9"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.memory-stats]
version = "1.2"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.reqwest]
version = "0.13.3"
features = [
"rustls",
"stream",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tracing-subscriber]
version = "0.3.23"
features = [
"env-filter",
"fmt",
]
[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"