autoitx 0.1.2

Cross-platform desktop UI automation with AutoItX's API — AutoItX3 DLL on Windows, native Accessibility/CGEvent on macOS
Documentation
[package]
name = "autoitx"
description = "Cross-platform desktop UI automation with AutoItX's API — AutoItX3 DLL on Windows, native Accessibility/CGEvent on macOS"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "../README.md"

[features]
default = []
# Per-call `tracing` spans: a timestamped log of every keystroke and click.
tracing = ["dep:tracing"]
# In-memory backend for testing automation code without a desktop.
mock = []
# Forward to autoitx-sys so the mock DLL can be loaded from any OS.
mock-loader = ["autoitx-sys/mock-loader"]

[dependencies]
autoitx-sys = { workspace = true }
# Also used directly, to side-load the couple of user32 functions AutoItX does
# not expose. See src/backend/win32.rs.
libloading = { workspace = true }
thiserror = { workspace = true }
parking_lot = { workspace = true }
bitflags = { workspace = true }
tracing = { workspace = true, optional = true }

[target.'cfg(target_os = "macos")'.dependencies]
# Apple's own frameworks through the objc2 project, rather than a third-party
# automation crate. The trade is deliberate: the dependency risk is objc2 plus
# Apple, and every behavioural decision stays here where it can be explained.
libc = { workspace = true }
objc2 = { workspace = true }
objc2-core-foundation = { workspace = true }
objc2-core-graphics = { workspace = true }
objc2-foundation = { workspace = true }
objc2-app-kit = { workspace = true }
objc2-application-services = { workspace = true }

[dev-dependencies]
# Not used in code — declared so Cargo builds the mock cdylib before the tests
# that dlopen it. See autoitx-sys for the same pattern.
xtask-mock-dll = { path = "../xtask-mock-dll" }
libloading = { workspace = true }

[lints]
workspace = true

[package.metadata.docs.rs]
default-target = "x86_64-pc-windows-msvc"
targets = ["x86_64-pc-windows-msvc", "aarch64-apple-darwin"]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]