[package]
name = "megalib"
version = "0.9.0"
edition = "2024"
description = "Rust client library for Mega.nz cloud storage"
license = "MIT"
repository = "https://github.com/11philip22/megalib"
documentation = "https://docs.rs/megalib"
keywords = ["mega", "meganz", "cloud-storage", "file-transfer"]
categories = ["api-bindings", "asynchronous", "web-programming::http-client"]

[dependencies]
# HTTP client
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream", "socks"] }
tokio = { version = "1", features = ["full"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Cryptography
aes = "0.8"
ctr = "0.9"
rsa = { version = "0.9", features = ["sha2"] }
rand = "0.8"
num-bigint = { version = "0.4", features = ["rand"] }
num-traits = "0.2"
num-integer = "0.1"
hmac = "0.12"
pbkdf2 = "0.12"
sha2 = "0.10"
aes-gcm = "0.10"
# Use the latest stable CCM crate (0.5.x). 0.6 is still in pre-release.
ccm = "0.5"
x25519-dalek = { version = "2", default-features = false, features = ["static_secrets"] }
ed25519-dalek = { version = "2", default-features = false, features = ["std"] }

# Base64
base64 = "0.22"

# Error handling
thiserror = "1"
hex = "0.4.3"
futures = "0.3"
tracing = "0.1"

image = "0.25.9"

[target.'cfg(windows)'.dependencies]
winreg = "0.52"

[dev-dependencies]
tokio-test = "0.4"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
indicatif = "0.18"
