firefox-webdriver 0.1.3

High-performance Firefox WebDriver in Rust
Documentation
[package]
name = "firefox-webdriver"
version = "0.1.3"
edition = "2024"
rust-version = "1.92.0"
authors = ["GnU-Chan <gnusocute@gmail.com>"]
license = "Apache-2.0"
description = "High-performance Firefox WebDriver in Rust"
repository = "https://github.com/Dark-Captcha/Firefox-WebDriver"
readme = "README.md"
keywords = ["firefox", "webdriver", "automation", "browser", "undetectable"]
categories = [
  "web-programming",
  "development-tools::testing",
  "api-bindings",
  "network-programming",
  "asynchronous",
]
publish = true
include = ["Cargo.toml", "LICENSE", "README.md", "src/**/*.rs"]

[dependencies]
# Async Runtime
tokio = { version = "1.48.0", features = ["full"] }
futures-util = "0.3.31"

# WebSocket Communication
tokio-tungstenite = "0.28.0"

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

# Error Handling
thiserror = "2.0.17"

# Logging
tracing = "0.1.44"

# Synchronization
parking_lot = "0.12.5"

# Network & HTTP
url = "2.5.7"
regex = "1.12.2"
urlencoding = "2.1.3"

# Data Structures & Hashing
# Since we're doing Firefox WebDriver and fxhash means Firefox hash xD
# So there's no reason NOT to use this
rustc-hash = "2.1.1"

# Utilities
base64 = "0.22.1"
tempfile = "3.24.0"
uuid = { version = "1.19.0", features = ["v4", "serde"] }
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }

# Archive extraction (for packed extensions)
zip = { version = "7.0.0", default-features = false, features = ["deflate"] }
async-trait = "0.1.89"

[dev-dependencies]
# Testing
anyhow = "1.0.100"
dirs = "6.0.0"
tokio-test = "0.4.4"
proptest = "1.9.0"

# Benchmarking
criterion = { version = "0.8.1", features = ["html_reports", "async_tokio"] }

# Logging for Tests
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }

[[bench]]
name = "multi_window"
harness = false

[profile.dev]
opt-level = 0
debug = true
split-debuginfo = "unpacked"
strip = "none"
debug-assertions = true
overflow-checks = true
lto = false
panic = "unwind"
incremental = true
codegen-units = 256

[profile.release]
opt-level = 3
debug = false
split-debuginfo = "off"
strip = "symbols"
debug-assertions = false
overflow-checks = false
lto = "fat"
panic = "abort"
incremental = false
codegen-units = 1

[profile.release-with-debug]
inherits = "release"
debug = true
strip = "none"

# Exclude common.rs from being treated as an example binary
[[example]]
name = "common"
crate-type = ["lib"]