cloudscraper-rs 0.2.0

Early-stage Cloudflare challenge solver bringing Python's Cloudscraper ideas to Rust
Documentation
[package]
name = "cloudscraper-rs"
version = "0.2.0"
edition = "2024"
authors = ["Ryujin-K"]
description = "Early-stage Cloudflare challenge solver bringing Python's Cloudscraper ideas to Rust"
license = "MIT"
repository = "https://github.com/Ryujin-K/cloudscraper-rs"
homepage = "https://github.com/Ryujin-K/cloudscraper-rs"
documentation = "https://docs.rs/cloudscraper-rs"
readme = "README.md"
keywords = ["cloudflare", "scraping", "bypass", "challenge", "anti-bot"]
categories = ["web-programming", "network-programming"]
rust-version = "1.88"
exclude = [
	"target/**"
]

[dependencies]
# HTTP Client - using native-tls instead of rustls to avoid build dependencies
reqwest = { version = "0.12", features = ["cookies", "gzip", "brotli", "json", "native-tls"], default-features = false }
http = "1.0"
tokio = { version = "1.42", features = ["full"] }

# HTML Parsing
scraper = "0.24"

# JSON
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Regular Expressions
regex = "1.11"

# URL Parsing
url = "2.5"

# JavaScript Engine Integration
boa_engine = "0.21"

# Random
rand = "0.8"
once_cell = "1.20"
html-escape = "0.2"

# Error Handling
thiserror = "2.0"

# Logging
log = "0.4"

# Async
async-trait = "0.1"
bytes = "1.6"

# Storage (using redb instead of sled - more actively maintained)
redb = "2.0"

# Date/Time
chrono = { version = "0.4", features = ["serde"] }

[features]
default = []
full = []

[profile.release]
opt-level = 3
lto = true
codegen-units = 1