[package]
edition = "2024"
rust-version = "1.91"
name = "arch-toolkit"
version = "0.3.0"
build = false
include = [
"src/**",
"examples/**",
"tests/**",
"Cargo.toml",
"Cargo.lock",
"README.md",
"CHANGELOG.md",
"LICENSE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Complete Rust toolkit for Arch Linux package management"
readme = "README.md"
keywords = [
"archlinux",
"aur",
"pacman",
"package-manager",
]
categories = [
"api-bindings",
"command-line-utilities",
]
license = "MIT"
repository = "https://github.com/Firstp1ck/arch-toolkit"
[package.metadata.docs.rs]
all-features = true
[features]
aur = [
"dep:reqwest",
"dep:tokio",
"dep:scraper",
"dep:chrono",
"dep:rand",
"dep:lru",
"dep:async-trait",
]
cache-disk = ["dep:dirs"]
default = ["aur"]
deps = []
fuzzy-search = ["dep:fuzzy-matcher"]
index = [
"dep:tokio",
"dep:reqwest",
]
install = ["deps"]
news = [
"dep:reqwest",
"dep:tokio",
"dep:chrono",
]
sandbox = ["deps"]
[lib]
name = "arch_toolkit"
path = "src/lib.rs"
[[example]]
name = "aur_example"
path = "examples/aur_example.rs"
required-features = ["aur"]
[[example]]
name = "deps_example"
path = "examples/deps_example.rs"
[[example]]
name = "deps_types_example"
path = "examples/deps_types_example.rs"
[[example]]
name = "env_config"
path = "examples/env_config.rs"
required-features = ["aur"]
[[example]]
name = "health_check"
path = "examples/health_check.rs"
required-features = ["aur"]
[[example]]
name = "index_example"
path = "examples/index_example.rs"
[[example]]
name = "install_example"
path = "examples/install_example.rs"
[[example]]
name = "mock_testing"
path = "examples/mock_testing.rs"
required-features = ["aur"]
[[example]]
name = "news_example"
path = "examples/news_example.rs"
[[example]]
name = "parse_example"
path = "examples/parse_example.rs"
[[example]]
name = "pkgbuild_example"
path = "examples/pkgbuild_example.rs"
[[example]]
name = "query_example"
path = "examples/query_example.rs"
[[example]]
name = "resolve_example"
path = "examples/resolve_example.rs"
[[example]]
name = "reverse_example"
path = "examples/reverse_example.rs"
[[example]]
name = "rich_error_context"
path = "examples/rich_error_context.rs"
required-features = ["aur"]
[[example]]
name = "sandbox_example"
path = "examples/sandbox_example.rs"
[[example]]
name = "source_example"
path = "examples/source_example.rs"
[[example]]
name = "srcinfo_example"
path = "examples/srcinfo_example.rs"
[[example]]
name = "version_example"
path = "examples/version_example.rs"
[[example]]
name = "with_caching"
path = "examples/with_caching.rs"
required-features = ["aur"]
[[test]]
name = "cache_integration"
path = "tests/cache_integration.rs"
required-features = ["aur"]
[[test]]
name = "compatibility_contract"
path = "tests/compatibility_contract.rs"
[[test]]
name = "deps_integration"
path = "tests/deps_integration.rs"
[[test]]
name = "index_integration"
path = "tests/index_integration.rs"
[[test]]
name = "install_integration"
path = "tests/install_integration.rs"
[[test]]
name = "metadata_integration"
path = "tests/metadata_integration.rs"
[[test]]
name = "news_integration"
path = "tests/news_integration.rs"
[[test]]
name = "sandbox_integration"
path = "tests/sandbox_integration.rs"
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.dirs]
version = "5.0"
optional = true
[dependencies.fuzzy-matcher]
version = "0.3"
optional = true
[dependencies.lru]
version = "0.16"
optional = true
[dependencies.rand]
version = "0.9"
optional = true
[dependencies.reqwest]
version = "0.13"
features = ["json"]
optional = true
[dependencies.scraper]
version = "0.25"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1"
features = [
"rt",
"time",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
]
[dev-dependencies.wiremock]
version = "0.6"
[lints.clippy]
cognitive_complexity = "warn"
missing_docs_in_private_items = "warn"
unwrap_used = "deny"
[lints.clippy.nursery]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.rust]
missing_docs = "warn"