[package]
name = "axterminator"
version = "0.2.1"
edition = "2021"
authors = ["Mikko Parkkola <mikko.parkkola@iki.fi>"]
description = "World's most superior macOS GUI testing framework with background testing"
license = "MIT OR Apache-2.0"
repository = "https://github.com/MikkoParkkola/axterminator"
documentation = "https://github.com/MikkoParkkola/axterminator#readme"
readme = "README.md"
keywords = ["macos", "gui", "testing", "accessibility", "automation"]
categories = ["development-tools::testing", "gui", "os::macos-apis"]

[lib]
name = "axterminator"
crate-type = ["cdylib", "rlib"]

[dependencies]
# Python bindings (abi3-py39 for forward compatibility with Python 3.14+)
pyo3 = { version = "0.22", features = ["extension-module", "abi3-py39"] }

# macOS accessibility
core-foundation = "0.10"
core-foundation-sys = "0.8"
core-graphics = { version = "0.24", features = ["elcapitan"] }
core-graphics-types = "0.2"

# macOS specific
objc = "0.2"
cocoa = "0.26"
block = "0.1"

# Async runtime
tokio = { version = "1.44", features = ["full"] }

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

# Error handling
thiserror = "2.0"
anyhow = "1.0"

# Caching
lru = "0.12"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# WebSocket for Chrome DevTools Protocol
tungstenite = "0.24"

# Process inspection
sysinfo = "0.33"

# URL parsing
url = "2.5"

# Hashing for tree comparison
ahash = "0.8"

# Regex for query parsing
regex = "1.11"
once_cell = "1.20"

[dev-dependencies]
criterion = "0.5"
tempfile = "3.15"

[build-dependencies]
pyo3-build-config = "0.22"

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

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