knott 0.0.1

Fast Rust package manager helper for Arch Linux repos and the AUR
Documentation

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: knott runs -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.

Usage

cargo build --release
./target/release/knott --help

Examples:

knott                       # repo upgrade, then AUR upgrade
knott ripgrep               # interactive search/install
knott -Ss linux headers     # combined repo/AUR search
knott --aur -Ss shellcheck-bin  # AUR-only search
knott -S ripgrep            # install repo or AUR target
knott --aur -S shellcheck-bin --dry-run --noconfirm
knott -Si shellcheck-bin    # package info
knott -G shellcheck-bin     # clone/update PKGBUILD
knott -Gp shellcheck-bin    # print PKGBUILD
knott -Qm                   # foreign packages
knott -Qua --aur            # AUR updates

Environment

  • KNOTT_AUR_URL: AUR base URL, defaults to https://aur.archlinux.org.
  • KNOTT_BUILDDIR: AUR build cache, defaults to $XDG_CACHE_HOME/knott/build.
  • KNOTT_PACMAN: pacman executable, defaults to pacman.
  • KNOTT_MAKEPKG: makepkg executable, defaults to makepkg.
  • KNOTT_GIT: git executable, defaults to git.
  • KNOTT_SUDO: privilege escalation command, defaults to sudo.

Verification

cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test