knott 0.1.2

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.

Installation

cargo install --path . --locked
knott --version

After 0.1.2 is published with the binary target included:

cargo install knott --locked
# or pin it explicitly:
cargo install knott --version 0.1.2 --locked

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

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

Commands

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 -Syu --needed         # refresh repos, upgrade, skip installed targets
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
knott --help                # command help
knott --version             # version

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

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 --help output in src/cli.rs, and CLI parser tests synced whenever commands or options change.
  • Before publishing, verify the package and install path:
cargo package
cargo install --path . --locked --root /tmp/knott-install-check --force
/tmp/knott-install-check/bin/knott --version
/tmp/knott-install-check/bin/knott --help