arch-toolkit 0.3.0

Complete Rust toolkit for Arch Linux package management
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"