-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
71 lines (57 loc) · 2.15 KB
/
Cargo.toml
File metadata and controls
71 lines (57 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[package]
name = "arch-toolkit"
version = "0.2.0"
edition = "2024"
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"]
[features]
default = ["aur"]
aur = ["dep:reqwest", "dep:tokio", "dep:scraper", "dep:chrono", "dep:rand", "dep:lru", "dep:async-trait"]
deps = [] # No additional dependencies for types only
index = ["dep:tokio"] # For async operations with spawn_blocking
fuzzy-search = ["dep:fuzzy-matcher"] # Optional fuzzy matching for search
cache-disk = ["dep:dirs"]
[dependencies]
# Always included (minimal)
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
tracing = "0.1"
# HTTP client (for aur feature)
reqwest = { version = "0.12", features = ["json"], optional = true }
tokio = { version = "1", features = ["rt", "time"], optional = true }
# HTML parsing (for aur comments)
scraper = { version = "0.25", optional = true }
# Date handling (for aur comments)
chrono = { version = "0.4", optional = true }
# Random number generation (for rate limiting jitter)
rand = { version = "0.9", optional = true }
# LRU cache (for cache feature)
lru = { version = "0.16", optional = true }
# Async trait support (for aur feature)
async-trait = { version = "0.1", optional = true }
# Directory utilities (for cache-disk feature)
dirs = { version = "5.0", optional = true }
# Fuzzy matching (for fuzzy-search feature)
fuzzy-matcher = { version = "0.3", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
wiremock = "0.6"
tempfile = "3.10"
[package.metadata.docs.rs]
all-features = true
[lints.clippy]
# Enable cognitive complexity lint to catch overly complex functions
cognitive_complexity = "warn"
pedantic = { level = "deny", priority = -1 }
nursery = { level = "deny", priority = -1 }
unwrap_used = "deny"
# Keep docs linting consistent with clippy naming
missing_docs_in_private_items = "warn"
[lints.rust]
missing_docs = "warn"
# Ignored tests run with:
# cargo test -- --ignored