grabcli-core 0.2.0

Shared Grab session, auth, hydra and HTTP plumbing for grabcli
Documentation
# Self-contained (no workspace inheritance) so the crate builds when a git
# dependency vendors only this directory (e.g. crate2nix). Keep the versions
# in step with the root Cargo.toml's [workspace.dependencies].
[package]
rust-version = "1.89"
name = "grabcli-core"
description = "Shared Grab session, auth, hydra and HTTP plumbing for grabcli"
version = "0.2.0"
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/talaagent/grabcli"
homepage = "https://github.com/talaagent/grabcli"
readme = "README.md"
documentation = "https://docs.rs/grabcli-core"
keywords = ["grab", "grabfood", "cli", "food-delivery", "philippines"]
categories = ["command-line-utilities"]
authors = ["Ian Macalinao <me@ianm.com>"]

[dependencies]
async-trait = "0.1.92"
base64 = "0.23.1"
futures-util = { version = "0.3.34", default-features = false, features = ["sink", "std"] }
getrandom = "0.4.3"
reqwest = { version = "0.13.5", default-features = false, features = ["rustls", "gzip", "json", "query"] }
aws-lc-rs = { version = "1.19.0", optional = true }
rustls-pki-types = { version = "1.15.1", optional = true }
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.154"
sha2 = "0.11.1"
thiserror = "2.0.21"
tokio = { version = "1.54.1", features = ["macros", "rt-multi-thread", "time"] }
tokio-tungstenite = "0.30.0"
toml = { version = "1.2.1", default-features = false, features = ["parse", "serde", "std"] }
urlencoding = "2.1.3"

[features]
default = []
# Native hydra minting (`hydra::mint_native`, `hydra_mode = "native"`): signs
# the hydra JWT locally with an RS256 key, which pulls in rsa and its PKCS
# stack. Without it hydra is minted over CDP only. The `grab` binary turns
# it on.
native-hydra = ["dep:aws-lc-rs", "dep:rustls-pki-types"]

[dev-dependencies]
pkcs8 = "0.11.0"
tempfile = "3.27.0"

[lints.clippy]
unwrap_used = "deny"

[package.metadata.docs.rs]
all-features = true