[package]
name = "fr-rust"
version = "0.2.2"
edition = "2024"
authors = ["Sayed Anower <sayed.anower.17.2@gmail.com>"]
description = "A comprehensive framework/utility library for Actix-web, Postgres, Redis, and authentication."
license = "MIT"
repository = "https://github.com/sayed-anower/fr-rust"
documentation = "https://docs.rs/fr-rust"
readme = "README.md"
keywords = ["web", "backend", "redis", "auth", "websocket"]
categories = ["web-programming", "asynchronous"]

[dependencies]
# Core Async, Error, Data structures
tokio = { version = "1.52", features = ["full"] }
tokio-util = { version = "0.7.18", features = ["io"] }
thiserror = "2.0"
dashmap = "6.2"
dotenvy = "0.15"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
base64 = "0.22"
hex = "0.4"
chrono = { version = "0.4", features = ["serde"] }
tracing = "0.1"
async-trait = "0.1"
uuid = { version = "1.23", features = ["v7", "serde"] }

# Actix Web Ecosystem (Aligned for compatibility)
actix-web = "4.9"
actix-ws = "0.4"
actix-files = "0.6"
actix-multipart = "0.7"
futures-util = "0.3"

# Database Drivers & Pooling
tokio-postgres = "0.7"
deadpool-postgres = "0.14"
deadpool-redis = "0.23"

# Cryptography & Security
argon2 = { version = "0.5.0", features = ["std"] }
aes-gcm = "0.10"
hmac = "0.12"
sha2 = "0.10"
rand = "0.10.1"

# Json
jsonwebtoken = { version = "10", features = ["aws_lc_rs"] }

# Email Handling
lettre = { version = "0.11", default-features = false, features = [
    "tokio1", 
    "pool", 
    "tokio1-rustls", 
    "ring",          
    "webpki-roots",
    "smtp-transport",
    "builder"
] }

# High performance
bytes = "1.5" # Zero-copy byte buffers
memmap2 = "0.9" # Memory-mapped files (zero-copy I/O)

# Compression
brotli = "3.4" # Best compression ratio
lz4_flex = "=0.13.1" # Fastest compression/decompression
secrecy = "0.10"
bincode = "1.3"