Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
62 lines (58 loc) · 2.4 KB
/
Copy pathCargo.toml
File metadata and controls
62 lines (58 loc) · 2.4 KB
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
[package]
name = "grab"
version = "6.0.2-beta.6"
edition = "2024"
rust-version = "1.98"
description = "A GNOME download manager (GTK 4 / libadwaita, reqwest backend)"
license = "GPL-3.0-only"
[dependencies]
# Version features must match the system libs (GTK 4.22+ / Adw 1.9+, GNOME 51 runtime).
gtk4 = { version = "0.11", features = ["v4_10", "v4_12", "v4_14", "v4_16", "v4_18", "v4_20", "v4_22"] }
libadwaita = { version = "0.9", features = ["v1_4", "v1_5", "v1_6", "v1_7", "v1_8", "v1_9"] }
# Direct deps for backend API replacements (format_size, uri_unescape_string,
# File::measure_disk_usage, File::move_/copy); versions match the transitive
# pins pulled in by gtk4/libadwaita.
glib = "0.22"
gio = "0.22"
url = "2"
percent-encoding = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# HTTP-date parser for the keep-server-date option (Last-Modified header).
httpdate = "1"
# Local HTTP server for browser extension integration (replaces native messaging).
axum = { version = "0.8", features = ["json"] }
# SHA-256 for verifying downloaded tool binaries against GitHub release digests.
sha2 = "0.11"
# HMAC-SHA256 for the browser-extension pairing handshake (extension_server).
hmac = "0.13"
tokio = { version = "1.53.1", default-features = false, features = ["rt", "rt-multi-thread", "sync", "time", "fs", "io-util", "macros", "net", "process"] }
futures-util = "0.3.34"
reqwest = { version = "0.13.5", default-features = false, features = ["rustls", "stream", "socks", "cookies", "gzip", "brotli", "deflate"] }
tracing = "0.1"
tracing-subscriber = "0.3"
# Torrent engine (magnet links). No default features: default-tls would pull
# native-tls/OpenSSL; rust-tls keeps the rustls-only posture. reqwest 0.13
# unifies with Grab's own dependency (same major, no duplicate stack).
librqbit = { version = "9", default-features = false, features = ["rust-tls"] }
gettext-rs = "0.8"
# Video-page extraction (YouTube etc). Wrapper around the yt-dlp + ffmpeg
# binaries: rustls keeps the rustls-only posture; no cache backend in v1
# (metadata is refetched, CDN URLs expire in ~6h anyway).
yt-dlp = { version = "2.8.3", default-features = false, features = ["rustls"] }
libc = "0.2"
thiserror = "2"
[dev-dependencies]
pretty_assertions = "1"
proptest = "1"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
strip = true
[lints.clippy]
correctness = "deny"
suspicious = "warn"
style = "warn"
complexity = "warn"
perf = "warn"