[package] name = "rustypipe" version = "0.5.0" rust-version = "1.67.1" edition.workspace = true authors.workspace = true license.workspace = true repository.workspace = true keywords.workspace = true categories.workspace = true description = "Client for the public YouTube / YouTube Music API (Innertube), inspired by NewPipe" include = ["/src", "README.md", "CHANGELOG.md", "LICENSE", "!snapshots"] [workspace] members = [".", "codegen", "downloader", "cli"] [workspace.package] edition = "2021" authors = ["ThetaDev "] license = "GPL-3.0" repository = "https://codeberg.org/ThetaDev/rustypipe" keywords = ["youtube", "video", "music"] categories = ["api-bindings", "multimedia"] [workspace.dependencies] quick-js-dtp = { version = "0.4.1", default-features = false, features = [ "patch-dateparser", ] } once_cell = "1.12.0" regex = "1.6.0" fancy-regex = "0.13.0" thiserror = "1.0.0" url = "2.2.0" reqwest = { version = "0.12.0", default-features = false } tokio = "1.20.4" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.82" serde_with = { version = "3.0.0", default-features = false, features = [ "alloc", "macros", ] } serde_plain = "1.0.0" rand = "0.8.0" time = { version = "0.3.10", features = [ "macros", "serde-human-readable", "serde-well-known", ] } futures = "0.3.21" ress = "0.11.0" phf = "0.11.0" phf_codegen = "0.11.0" base64 = "0.22.0" urlencoding = "2.1.0" quick-xml = { version = "0.36.0", features = ["serialize"] } tracing = { version = "0.1.0", features = ["log"] } # CLI indicatif = "0.17.0" anyhow = "1.0" clap = { version = "4.0.0", features = ["derive"] } tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } serde_yaml = "0.9.0" dirs = "5.0.0" filenamify = "0.1.0" # Testing rstest = "0.23.0" tokio-test = "0.4.2" insta = { version = "1.17.1", features = ["ron", "redactions"] } path_macro = "1.0.0" tracing-test = "0.2.5" # Included crates rustypipe = { path = ".", version = "0.5.0", default-features = false } rustypipe-downloader = { path = "./downloader", version = "0.2.1", default-features = false, features = [ "indicatif", "audiotag", ] } [features] default = ["default-tls"] rss = ["quick-xml"] # Reqwest TLS options default-tls = ["reqwest/default-tls"] native-tls = ["reqwest/native-tls"] native-tls-alpn = ["reqwest/native-tls-alpn"] native-tls-vendored = ["reqwest/native-tls-vendored"] rustls-tls-webpki-roots = ["reqwest/rustls-tls-webpki-roots"] rustls-tls-native-roots = ["reqwest/rustls-tls-native-roots"] [dependencies] quick-js-dtp.workspace = true once_cell.workspace = true regex.workspace = true fancy-regex.workspace = true thiserror.workspace = true url.workspace = true reqwest = { workspace = true, features = ["json", "gzip", "brotli"] } tokio = { workspace = true, features = ["macros", "time"] } serde.workspace = true serde_json.workspace = true serde_with.workspace = true serde_plain.workspace = true rand.workspace = true time.workspace = true ress.workspace = true phf.workspace = true base64.workspace = true urlencoding.workspace = true tracing.workspace = true quick-xml = { workspace = true, optional = true } [dev-dependencies] rstest.workspace = true tokio-test.workspace = true insta.workspace = true path_macro.workspace = true tracing-test.workspace = true [package.metadata.docs.rs] # To build locally: # RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --features rss --no-deps --open features = ["rss"] rustdoc-args = ["--cfg", "docsrs"]