Skip to content

os-guy-original/khazaur

Repository files navigation

Khazaur

Khazaur Logo

One Package Manager to Rule Them All

Rust License


What is Khazaur?

Khazaur is a package manager for Arch Linux that unifies multiple package sources into a single interface. Instead of switching between pacman, yay, flatpak, and snap, you can use one tool for everything.

Written in Rust for performance and reliability.

Features

Multi-source support

  • Official Arch repositories (via pacman)
  • AUR packages (automatic building)
  • Flatpak applications from Flathub
  • Snap packages from Snap Store
  • Debian .deb files (via debtap conversion)

Unified search

  • Search all sources with one command
  • Interactive selection when multiple matches exist
  • Filter by source with --aur, --repo, --flatpak, --snap, or --debian

Smart behavior

  • Automatic dependency resolution
  • 24-hour cache for Debian packages
  • Checksum verification
  • Conflict detection for package removal
  • Optional dependency prompts (flatpak, snapd, debtap)

Security

  • PKGBUILD review before building
  • MD5 verification for Debian packages
  • Supports pkexec, sudo, or doas

Developer Experience

  • Shell completions for bash, zsh, fish, PowerShell, and elvish
  • Colored output with clear status indicators
  • Interactive package selection

Installation

From AUR (Recommended)

The easiest way to install khazaur on Arch Linux:

# Using an AUR helper (yay, paru, etc.)
yay -S khazaur

Manual Installation from PKGBUILD

If you prefer to build manually without an AUR helper:

# Clone the repository
git clone https://github.com/os-guy-original/khazaur.git
cd khazaur

# Build and install using makepkg
makepkg -si

Manual Build from Source

Requirements:

  • Arch Linux or Arch-based distribution
  • Rust 1.70+
  • cargo and git
  • libgit2, libssh2, openssl, zlib (runtime dependencies)
  • Privilege escalation tool (pkexec, sudo, or doas)
git clone https://github.com/os-guy-original/khazaur.git
cd khazaur
cargo build --release
sudo install -Dm755 target/release/khazaur /usr/bin/khazaur

Optional Dependencies

Khazaur will prompt to install these when needed:

  • flatpak - for Flatpak support
  • snapd - for Snap support
  • debtap - for Debian package conversion

Usage

Basic commands

# Search for packages
khazaur -Ss firefox

# Install a package
khazaur -S firefox

# Install from specific source (pacman-style)
khazaur -S aur/yay
khazaur -S core/linux
khazaur -S flatpak/org.mozilla.firefox
khazaur -S snap/discord

# Update package databases
khazaur -Sy

# Upgrade system
khazaur -Syu

# Remove a package
khazaur -R firefox

# Show package info
khazaur -Si firefox

Source-specific operations

# Search specific sources
khazaur -Ss yay --aur
khazaur -Ss spotify --flatpak
khazaur -Ss discord --snap
khazaur -Ss htop --debian
khazaur -Ss firefox --repo

# Install from specific source (two methods)
# Method 1: Using flags
khazaur -S yay --aur
khazaur -S firefox --flatpak

# Method 2: Using source prefix (pacman-style)
khazaur -S aur/yay
khazaur -S flatpak/org.mozilla.firefox
khazaur -S snap/discord
khazaur -S core/linux extra/firefox

# Update specific sources
khazaur -Sy --repo          # Update pacman databases only
khazaur -Sy --debian        # Update Debian index and debtap

Installing .deb files

khazaur package.deb
# or
khazaur -S package.deb

Handling dependency conflicts

When removing packages with dependencies, khazaur detects conflicts and prompts for confirmation:

khazaur -R flatpak
# Shows dependent packages
# Asks if you want to force removal with -Rdd

Skip confirmations

khazaur -S package-name --noconfirm

Configuration

Config file: ~/.config/khazaur/config.toml

use_color = true
confirm = true
review_pkgbuild = false
concurrent_downloads = 4
use_git_clone = true
max_concurrent_requests = 10
request_delay_ms = 100

[rejected_dependencies]
flatpak = false
snapd = false
debtap = false

Cache directory: ~/.cache/khazaur/

Comparison with other AUR helpers

Feature Khazaur yay paru
Language Rust Go Rust
AUR + repos
Flatpak
Snap
Debian packages
Multi-source search
Dependency resolution

Khazaur extends the traditional AUR helper model by adding support for additional package sources. If you only need AUR and repository support, yay and paru are excellent choices. Khazaur is useful when you want to manage Flatpak, Snap, or Debian packages alongside your Arch packages.

Status

Working:

  • AUR package installation
  • Repository package installation
  • Flatpak support
  • Snap support
  • Debian package support
  • Multi-source search
  • Dependency resolution
  • Package removal
  • Conflict handling
  • Configuration file
  • AUR package upgrades

Completed:

  • Shell completions

Note: Debian packages installed via debtap are converted to pacman packages and managed through pacman thereafter.

Contributing

Contributions are welcome. Please submit pull requests or open issues on GitHub.

License

Licensed under the GNU General Public License v3.0. See LICENSE for details.

Credits

Inspired by yay and paru. Built with Rust. Thanks to the Arch Linux community.


Made by os-guy-original

About

Unified package manager for Arch Linux - AUR, repos, Flatpak, Snap, and Debian packages in one tool

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages