1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# yt - A fully featured command line YouTube client
#
# Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of Yt.
#
# You should have received a copy of the License along with this program.
# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
[package]
name = "yt"
version = "1.2.1"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.87"
blake3 = "1.5.4"
chrono = { version = "0.4.38", features = ["now"] }
chrono-humanize = "0.2.3"
clap = { version = "4.5.17", features = ["derive"] }
futures = "0.3.30"
log = "0.4.22"
regex = "1.10.6"
serde = { version = "1.0.210", features = ["derive"] }
serde_json = "1.0.128"
sqlx = { version = "0.8.2", features = ["runtime-tokio", "sqlite"] }
stderrlog = "0.6.0"
tempfile = "3.12.0"
tokio = { version = "1.40.0", features = [
"rt-multi-thread",
"macros",
"process",
"time",
"io-std",
] }
url = { version = "2.5.2", features = ["serde"] }
xdg = "2.5.2"
yt_dlp = { path = "./crates/yt_dlp/" }
libmpv2 = { path = "./crates/libmpv2" }
bytes = { path = "./crates/bytes", features = ["serde"] }
trinitry = { version = "0.2.2" }
toml = "0.8.19"
nucleo-matcher = "0.3.1"
owo-colors = "4.1.0"
[[bin]]
name = "yt"
[profile.profiling]
inherits = "release"
debug = true
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
split-debuginfo = "off"
[lints.rust]
# rustc lint groups https://doc.rust-lang.org/rustc/lints/groups.html
warnings = "warn"
future_incompatible = { level = "warn", priority = -1 }
let_underscore = { level = "warn", priority = -1 }
nonstandard_style = { level = "warn", priority = -1 }
rust_2018_compatibility = { level = "warn", priority = -1 }
rust_2018_idioms = { level = "warn", priority = -1 }
rust_2021_compatibility = { level = "warn", priority = -1 }
unused = { level = "warn", priority = -1 }
# rustc allowed-by-default lints https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html
# missing_docs = "warn"
macro_use_extern_crate = "warn"
meta_variable_misuse = "warn"
missing_abi = "warn"
missing_copy_implementations = "warn"
missing_debug_implementations = "warn"
non_ascii_idents = "warn"
noop_method_call = "warn"
single_use_lifetimes = "warn"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_crate_dependencies = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_qualifications = "warn"
variant_size_differences = "warn"
[lints.rustdoc]
# rustdoc lints https://doc.rust-lang.org/rustdoc/lints.html
broken_intra_doc_links = "warn"
private_intra_doc_links = "warn"
missing_crate_level_docs = "warn"
private_doc_tests = "warn"
invalid_codeblock_attributes = "warn"
invalid_rust_codeblocks = "warn"
bare_urls = "warn"
[lints.clippy]
# clippy allowed by default
dbg_macro = "warn"
# clippy categories https://doc.rust-lang.org/clippy/
all = { level = "warn", priority = -1 }
correctness = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
|