[package] edition = "2021" name = "stream-download" version = "0.6.0" rust-version = "1.75.0" authors = ["Austin Schey "] license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/aschey/stream-download-rs" description = "A library for streaming content to a local file-backed cache" categories = ["multimedia", "asynchronous", "caching"] keywords = ["audio", "stream", "media"] include = ["/src", "/examples", "/tests"] [dependencies] bytes = "1" educe = "0.6" # this is a transitive dependency but 4.2 fails to compile so we need to pin this for now enum-ordinalize = { version = "4.3.0", default-features = false } futures = "0.3" mediatype = { version = "0.19", optional = true } parking_lot = "0.12.1" rangemap = "1" reqwest = { version = "0.12", features = [ "stream", ], default-features = false, optional = true } tap = "1.0.1" tempfile = { version = "3", optional = true } tokio = { version = "1.23.1", features = ["sync", "macros", "rt"] } tokio-util = "0.7.1" tracing = "0.1.36" [features] default = ["reqwest", "temp-storage"] http = ["dep:mediatype"] reqwest = ["http", "dep:reqwest"] reqwest-native-tls = ["reqwest", "reqwest/native-tls"] reqwest-rustls = ["reqwest", "reqwest/rustls-tls"] temp-storage = ["dep:tempfile"] [dev-dependencies] rodio = { version = "0.19.0", default-features = false, features = [ "symphonia-all", ] } tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } tokio = { version = "1.37.0", features = ["sync", "macros", "rt-multi-thread"] } tower-http = { version = "0.5.2", features = ["fs"] } tower = { version = "0.4.13", features = ["make"] } ctor = "0.2.7" rstest = "0.21.0" proptest = "1.4.0" axum = "0.7.5" [[example]] name = "basic_http" required-features = ["reqwest"] doc-scrape-examples = true [[example]] name = "client_options" required-features = ["reqwest", "temp-storage"] doc-scrape-examples = true [[example]] name = "custom_client" required-features = ["reqwest", "temp-storage"] doc-scrape-examples = true [[example]] name = "from_stream" required-features = ["reqwest", "temp-storage"] doc-scrape-examples = true [[example]] name = "infinite_stream" required-features = ["reqwest-rustls"] doc-scrape-examples = true [[example]] name = "adaptive" required-features = ["reqwest-rustls", "temp-storage"] doc-scrape-examples = true [[example]] name = "memory_storage" required-features = ["reqwest"] doc-scrape-examples = true [package.metadata.docs.rs] # don't enable tls features here because it causes build failures features = ["reqwest", "temp-storage"] rustdoc-args = ["--cfg", "docsrs"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]