[package]
name = "rgfile"
version = "0.10.1"
edition = "2024"
rust-version = "1.85"
license = "MIT"
repository = "https://github.com/Maymall/gigafile-rust-cli"
description = "A fast, robust CLI for GigaFile.nu: resumable segmented downloads, streaming uploads, and share management."
readme = "README.md"
keywords = ["gigafile", "upload", "download", "file-transfer", "cli"]
categories = ["command-line-utilities"]

[package.metadata.deb]
maintainer = "Maymall <282547878+Maymall@users.noreply.github.com>"
copyright = "2026, Maymall. MIT."
license-file = ["LICENSE", "0"]
extended-description = """\
rgfile is a fast, robust command-line client for GigaFile.nu. It supports \
resumable single-file and multi-file downloads with atomic completion, \
correct UTF-8 filenames decoded from Content-Disposition, and streaming \
chunked uploads with per-chunk retry."""
# The published .deb ships the statically linked musl binary: no runtime deps.
depends = ""
assets = [
    ["target/release/rgfile", "usr/bin/", "755"],
    ["README.md", "usr/share/doc/rgfile/README.md", "644"],
]

[lib]
name = "rgfile"
path = "src/lib.rs"

[[bin]]
name = "rgfile"
path = "src/main.rs"

[dependencies]
clap = { version = "4.5.23", features = ["derive"] }
clap_complete = "4.5.44"
directories = "6.0.0"
flate2 = "1.1.2"
fs2 = "0.4.3"
futures-util = "0.3.31"
indicatif = "0.17.11"
libc = "0.2.186"
regex = "1.11.1"
reqwest = { version = "0.12.22", default-features = false, features = ["rustls-tls", "cookies", "stream", "gzip", "json", "multipart"] }
rpassword = "7.4.0"
scraper = "0.23.1"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
sha2 = "0.10.9"
tar = "0.4.44"
thiserror = "2.0.12"
tokio = { version = "1.45.1", features = ["rt-multi-thread", "macros", "fs", "io-util", "time", "signal"] }
tokio-util = { version = "0.7.16", features = ["io"] }
toml = "1.1.2"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
uuid = { version = "1.18.1", features = ["v4", "fast-rng"] }
zip = { version = "2.4.2", default-features = false, features = ["deflate"] }

[dev-dependencies]
assert_cmd = "2.0.17"
insta = "1.43.1"
predicates = "3.1.3"
tempfile = "3.20.0"
# Pin wiremock because 0.6.5 uses let-chain syntax that requires Rust 1.88,
# while this project supports MSRV 1.85.
wiremock = "=0.6.3"
