zp is a minimal, source-based package manager written in Zig that fetches, builds, and installs packages from source by aggregating recipes from Void, Crux, and KISS Linux.

Stars

4

7-day growth

No data

Forks

0

Open issues

0

License

MIT

Last updated

2026-07-30

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It combines a source-based ports-style approach with a multi-source package database, all implemented in Zig as a single static binary with no runtime dependencies.

Who it is for

  • Zig developers interested in systems programming
  • Linux users who prefer compiling from source
  • Hobbyists exploring package manager internals
  • Users of Crux, KISS, or Void Linux wanting a unified tool

Use cases

  • Installing software from source with auto-detected build systems
  • Learning how a package manager fetches, builds, and stages packages
  • Testing build system compatibility across multiple recipe formats
  • Personal daily-driver experiment for source-based Linux installations

Strengths

  • Written in Zig, compiles to a single static binary with no runtime
  • Aggregates recipes from three Linux distributions (Void, Crux, KISS) with deterministic dedup
  • Auto-detects build systems (autotools, make, cmake, meson) without manual configuration
  • Minimal design: does a few things well and stays out of the way

Considerations

  • Early stage learning project, not production-ready
  • Requires external tools (git, curl, tar, bash, awk, C toolchain) for operation
  • No dependency resolution or file-list based removal yet
  • Limited to Linux; no cross-platform support mentioned

README quick start

⚡ zp

A minimal, source-based package manager written in Zig.

Fetch. Build. Install. From source — no prebuilt binaries.

📖 About

zp is a small, source-based, ports-style package manager written in Zig.

Instead of downloading prebuilt binaries, zp fetches a package's source tarball, auto-detects its build system, compiles it, and installs it on your machine. The idea is borrowed from Crux / KISS Linux / Void xbps-src — but the tool itself is written in Zig (single static binary, no runtime) and pulls its package database from multiple upstream sources at once.

⚠️ Early stage / learning project. zp is a work in progress and a personal daily-driver experiment. Not production-ready — use at your own risk.

✨ Features

  • 🔨 Source-based installsfetch → unpack → build → install, fully from source
  • 🔍 Build-system auto-detectionconfigure (autotools), make, cmake, meson
  • 🌐 Multi-source package database — aggregates recipes from Void, Crux, and KISS
  • 🧹 Deterministic dedup — one name = one package, with source priority void > crux > kiss
  • Written in Zig — compiles to a single static binary
  • 🧩 Minimal by design — does a few things and stays out of your way

🏗️ How it works

zp -i 
   │
   ├─ 1. look up  in /var/zp/mirrors/zp.packages   (name → url)
   ├─ 2. curl the source tarball into /var/zp/install/
   ├─ 3. unpack into /var/zp/build/   (tar --strip-components=1)
   ├─ 4. auto-detect the build system and build:
   │        ./configure --prefix=/usr && make && make install DESTDIR=/var/zp/pkg
   │        cmake -B _zb && cmake --build _zb && DESTDIR=/var/zp/pkg cmake --install _zb
   │        meson setup _zb && meson compile && DESTDIR=/var/zp/pkg meson install
   │        make && make install DESTDIR=/var/zp/pkg
   └─ 5. copy the staged box /var/zp/pkg/. into the system prefix

Package database

The database (/var/zp/mirrors/zp.packages, format name url) is generated by gen.sh, which is created on zp --init. It:

  1. clones / updates the Void, Crux, and KISS recipe trees,
  2. parses each source's recipe format (Void template, Crux Pkgfile, KISS sources),
  3. normalizes download URLs,
  4. merges everything with an awk de

Description

A minimal, source-based package manager

Related repositories

Similar projects matched by category, topics, and programming language.

jazzzooo
jazzzooo GitHub avatar

buz

Buz is an experimental fork of pre-Rust Bun that aims to be a drop-in replacement for Bun, prioritizing incremental compilation and code cleanup via LLM-assisted contributions.

Zig
168
kristoff-it
kristoff-it GitHub avatar

zig-bundler

A Zig build tool that compresses and embeds asset directories directly into executables, exposing them as Zig declarations.

Zig
27