firebase-rust-sdk 0.1.0-beta

Unofficial Rust port of Firebase C++ SDK
[package]
name = "firebase-rust-sdk"
version = "0.1.0-beta"
edition = "2021"
authors = ["Firebase Rust Contributors"]
description = "Unofficial Rust port of Firebase C++ SDK"
license = "MIT"
repository = "https://github.com/cwahn/firebase-rust-sdk"
homepage = "https://github.com/cwahn/firebase-rust-sdk"
documentation = "https://docs.rs/firebase-rust-sdk"
readme = "README.md"
keywords = ["firebase", "auth", "firestore", "grpc", "async"]
categories = ["authentication", "database", "api-bindings", "asynchronous"]
exclude = [
    "firebase-cpp-sdk/",
    "codeql-*",
    "analysis*",
    "*.sh",
    "*.py",
    "*.log",
    "docs/",
    "REFACTORING_PLAN.md",
]

[features]
default = []
tracker = []           # Enable implementation status tracking
integration-tests = [] # Enable integration tests with real Firebase

[dependencies]
tokio = { version = "1.40", features = ["full"] }
futures = "0.3"
async-stream = "0.3"
# reqwest only for Auth REST API (Firestore uses gRPC)
reqwest = { version = "0.12", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"                                  # Only for Auth REST API
serde_bytes = "0.11"
thiserror = "2.0"
chrono = { version = "0.4", features = ["serde"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
once_cell = "1.20"
rand = "0.8"
uuid = { version = "1.11", features = ["v4"] }
base64 = "0.22"

# gRPC for Firestore (cross-platform)
tonic = { version = "0.12", default-features = false, features = [
    "transport",
    "codegen",
    "prost",
    "tls",
    "tls-webpki-roots",
] }
prost = "0.13"
prost-types = "0.13"
tokio-stream = "0.1"

[dependencies.h2]
version = "0.4"

[build-dependencies]
tonic-build = "0.12"
ureq = "2.10"

[dev-dependencies]
tokio-test = "0.4"
dotenvy = "0.15"   # Load .env file for integration tests