[package]
name = "selenium-manager"
version = "0.4.34" # don't forget to update rust/BUILD.bazel
edition = "2021"
authors = ["Selenium <selenium-developers@googlegroups.com"]
license = "Apache-2.0"
homepage = "https://www.selenium.dev/"
repository = "https://github.com/SeleniumHQ/selenium"
documentation = "https://www.selenium.dev/documentation/"
description = """
Selenium Manager is a CLI tool that automatically manages the browser/driver infrastructure required by Selenium.
"""

[dependencies]
clap = { version = "4.5.37", features = ["derive", "cargo"] }
log = "0.4.27"
env_logger = "0.11.8"
regex = "1.11.1"
tokio = { version = "1.45.0", default-features = false, features = ["macros", "net", "rt-multi-thread"] }
tempfile = "3.19.1"
reqwest = { version = "0.12.15", default-features = false, features = ["rustls-tls"] }
zip = { version = "2.6.1", default-features = false, features = ["deflate-zlib"] }
directories = "6.0.0"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
flate2 = "1.1.1"
tar = "0.4.44"
infer = "0.19.0"
exitcode = "1.1.2"
toml = "0.8.22"
bzip2 = "0.5.2"
sevenz-rust = "0.6.1"
xz2 = "0.1.7"
walkdir = "2.5.0"
debpkg = "0.6.0"
anyhow = { version = "1.0.98", default-features = false, features = ["backtrace", "std"] }
apple-flat-package = "0.20.0"
which = "7.0.3"
fs2 = "0.4.3"
fs_extra = "1.3.0"

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3.9", features = ["winver", "winnt", "sysinfoapi"] }

[dev-dependencies]
assert_cmd = "2.0.17"
is_executable = "1.0.4"
rstest = "0.19.0"

[profile.release]
opt-level = 'z'     # Optimize for size
lto = true          # Enable Link Time Optimization
codegen-units = 1   # Reduce number of codegen units to increase optimizations
panic = 'abort'     # Abort on panic
strip = true        # Strip symbols from binary

[profile.dev]
debug = true             # Full debug info
split-debuginfo = 'off'  # Debug info in the final artifact
