grr-cli 0.4.0

Google tools from the terminal, at maximum performance: zero-config Gmail, Calendar, Drive, Contacts, Chat and Forms over HTTP/3
[workspace]
resolver = "2"

[package]
name = "grr-cli"
version = "0.4.0"
edition = "2024"
license = "MIT"
authors = ["Debanjan Basu <debanjanbasu2006@gmail.com>"]
repository = "https://github.com/debanjanbasu/grr-cli"
description = "Google tools from the terminal, at maximum performance: zero-config Gmail, Calendar, Drive, Contacts, Chat and Forms over HTTP/3"
readme = "README.md"
keywords = ["google", "gmail", "http3", "cli", "oauth"]
categories = ["command-line-utilities", "api-bindings", "email", "network-programming", "web-programming"]

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

[[bin]]
name = "grr"
path = "src/main.rs"
required-features = ["cli"]

[dependencies]
reqwest = { version = "0.13.4", default-features = false, features = ["http2", "http3", "rustls", "json", "form", "query", "stream", "multipart", "gzip", "deflate", "zstd", "brotli"] }
tokio = { version = "1.53.1", features = ["macros", "rt-multi-thread", "sync", "time", "fs", "net", "io-util", "io-std"] }
tokio-util = { version = "0.7.16", features = ["io"] }
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
url = "2.5.8"
clap = { version = "4.6.6", features = ["derive", "env", "wrap_help", "string", "help", "usage", "cargo", "color", "unicode"] }
dirs = "5.0.1"
figment = { version = "0.10.19", features = ["env", "toml"] }
tracing = { version = "0.1.44", features = ["std"] }
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "fmt"], optional = true }
futures = "0.3.34"
bytes = "1.10"
anyhow = "1.0.104"
thiserror = "2.0.20"
base64 = { version = "0.23.1", features = ["alloc", "std"] }
rand = { version = "0.8.7", features = ["std"] }
sha2 = "0.10.9"
urlencoding = { version = "2.1.3", optional = true }
open = "5.4"
num_cpus = "1.17"
keyring = { version = "4.2.0", features = ["windows-native-keyring-store", "apple-native-keyring-store", "zbus-secret-service-keyring-store"] }
mime_guess = "2.0"
comfy-table = "8.0"

[target.'cfg(target_os = "linux")'.dependencies]
tokio-uring = "0.5.0"
io-uring = "0.6.4"

[dev-dependencies]
wiremock = "0.6.5"
tempfile = "3.27.0"
assert_cmd = "2.2"
predicates = "3.1"

[features]
default = ["cli"]
gmail = []
calendar = ["dep:urlencoding"]
drive = ["dep:urlencoding"]
people = []
chat = ["dep:urlencoding"]
forms = ["dep:urlencoding"]
cli = ["gmail", "calendar", "drive", "people", "chat", "forms", "dep:tracing-subscriber"]

[profile.dev]
opt-level = 1
panic = "abort"
incremental = true
debug = 1

[profile.dev.package."*"]
opt-level = 3

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
strip = "symbols"
incremental = false
overflow-checks = false

[profile.release.build-override]
opt-level = 3

[profile.bench]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 1

[profile.test]
opt-level = 3
lto = "fat"
codegen-units = 1