[package]
name = "arch-toolkit"
version = "0.3.0"
edition = "2024"
rust-version = "1.91"
description = "Complete Rust toolkit for Arch Linux package management"
license = "MIT"
repository = "https://github.com/Firstp1ck/arch-toolkit"
keywords = ["archlinux", "aur", "pacman", "package-manager"]
categories = ["api-bindings", "command-line-utilities"]
include = [
"src/**",
"examples/**",
"tests/**",
"Cargo.toml",
"Cargo.lock",
"README.md",
"CHANGELOG.md",
"LICENSE",
]
[features]
default = ["aur"]
aur = ["dep:reqwest", "dep:tokio", "dep:scraper", "dep:chrono", "dep:rand", "dep:lru", "dep:async-trait"]
deps = []
index = ["dep:tokio", "dep:reqwest"]
install = ["deps"]
news = ["dep:reqwest", "dep:tokio", "dep:chrono"]
sandbox = ["deps"]
fuzzy-search = ["dep:fuzzy-matcher"]
cache-disk = ["dep:dirs"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
tracing = "0.1"
reqwest = { version = "0.13", features = ["json"], optional = true }
tokio = { version = "1", features = ["rt", "time"], optional = true }
scraper = { version = "0.25", optional = true }
chrono = { version = "0.4", optional = true }
rand = { version = "0.9", optional = true }
lru = { version = "0.16", optional = true }
async-trait = { version = "0.1", optional = true }
dirs = { version = "5.0", optional = true }
fuzzy-matcher = { version = "0.3", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
wiremock = "0.6"
tempfile = "3.10"
[[example]]
name = "aur_example"
required-features = ["aur"]
[[example]]
name = "env_config"
required-features = ["aur"]
[[example]]
name = "health_check"
required-features = ["aur"]
[[example]]
name = "mock_testing"
required-features = ["aur"]
[[example]]
name = "rich_error_context"
required-features = ["aur"]
[[example]]
name = "with_caching"
required-features = ["aur"]
[[test]]
name = "cache_integration"
required-features = ["aur"]
[package.metadata.docs.rs]
all-features = true
[lints.clippy]
cognitive_complexity = "warn"
pedantic = { level = "deny", priority = -1 }
nursery = { level = "deny", priority = -1 }
unwrap_used = "deny"
missing_docs_in_private_items = "warn"
[lints.rust]
missing_docs = "warn"