knott
knott is a fast Rust Arch Linux package helper for pacman repositories and the AUR. It combines repo/AUR search, provider-aware AUR planning, and upfront install menus.
Current Features
- Pacman-like CLI defaults:
knottruns-Syu, bare terms open a search menu. - Combined repo/AUR search with AUR narrowing by the shortest term first.
- AUR RPC client with keep-alive, gzip, batching, request timeouts, and per-run caches.
- AUR package info, PKGBUILD printing, and PKGBUILD clone/update support.
- AUR install dry-run/planning with dependency graph ordering and provider lookup.
- Local pacman DB parser for installed markers and AUR update checks.
- Arch-like version comparison for local-vs-AUR upgrade detection.
- Numeric menu parser supporting
1 2,1-3,^4, and package names. - Release profile tuned for optimized binaries: LTO, one codegen unit, stripped binary.
Installation
After 0.1.2 is published with the binary target included:
# or pin it explicitly:
If plain cargo install knott still reports that knott v0.1.0 has no binaries,
the registry index has not picked up the fixed release yet. Use the exact version
above or retry after the crates.io index updates.
Build
Commands
Environment
KNOTT_AUR_URL: AUR base URL, defaults tohttps://aur.archlinux.org.KNOTT_BUILDDIR: AUR build cache, defaults to$XDG_CACHE_HOME/knott/build.KNOTT_PACMAN: pacman executable, defaults topacman.KNOTT_MAKEPKG: makepkg executable, defaults tomakepkg.KNOTT_GIT: git executable, defaults togit.KNOTT_SUDO: privilege escalation command, defaults tosudo.
Verification
Maintenance
- Bump the patch version for every project change, and keep
Cargo.toml,Cargo.lock, and README install examples on the same version. - Keep
README.md,knott --helpoutput insrc/cli.rs, and CLI parser tests synced whenever commands or options change. - Before publishing, verify the package and install path: