Files
Thuumate 👻 61fad87f23 fix: Rate-Limiting bei AUR RPC + Retry-Logik (v2.1.1)
Probleme behoben:
- 429 Too Many Requests bei schnellen AUR-RPC-Abfragen
- Pakete zeigten 0/100 UNBEKANNT statt korrekter Scores
- scan-all brach bei massiven Fehlern ab

Lösungen:
- Retry-Mechanismus mit exponentiellem Backoff (max 3 Versuche)
- 429-Status erkannt und mit 1s/2s/3s Delay retryed
- Kein Hard-Fail bei AUR-Fehlern — None zurückgeben
- 200ms Pause nach je 5 Paketen in scan-all
- Consecutive-Error-Limit: 5 Fehler → 5s Pause
- Scan läuft stabil durch alle 125+ Pakete

Test-Ergebnis:
- Vorher: 60+ Pakete mit 0/100 UNBEKANNT
- Nachher: 0 Pakete mit UNBEKANNT, alle korrekt gescored
2026-06-15 20:04:18 +02:00

75 lines
1.5 KiB
TOML

[package]
name = "aegisaur"
version = "2.1.1"
edition = "2021"
authors = ["Quasi & Thuumate 👻"]
description = "Trust-Scoring + IOC-Scanner für Arch Linux AUR-Pakete"
license = "MIT"
repository = "https://gitea.die-heimatlosen.eu/arch_agent/aegisaur"
keywords = ["arch-linux", "aur", "security", "supply-chain", "malware-detection"]
categories = ["command-line-utilities", "security"]
rust-version = "1.70"
[[bin]]
name = "aegisaur"
path = "src/main.rs"
[dependencies]
# HTTP Client für IOC-Fetching
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }
# Async Runtime
tokio = { version = "1.38", features = ["full"] }
# JSON Parsing/Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# CLI Argument Parser
clap = { version = "4.5", features = ["derive", "cargo"] }
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
# Error Handling
anyhow = "1.0"
thiserror = "2.0"
# PKGBUILD Parsing
regex = "1.10"
# Config File Management
config = "0.14"
toml = "0.8"
# Terminal Colors
colored = "2.1"
# Table Output for CLI
tabled = "0.15"
# Fuzzy Matching für Paketnamen
sublime_fuzzy = "0.7"
# Cache / State Management
directories = "5.0"
# Date-Time (für Cache-Timestamps)
chrono = { version = "0.4", features = ["serde"] }
# Pfad-Handling
which = "6.0"
# Temporäre Dateien
tempfile = "3.10"
[dev-dependencies]
tokio-test = "0.4"
wiremock = "0.6"
[profile.release]
opt-level = 3
lto = true
strip = true
panic = "abort"