zp 是一个用 Zig 编写的最小化源码包管理器,通过聚合 Void、Crux 和 KISS Linux 的配方,从源码获取、构建并安装软件包。

Stars

3

7 天增长

暂无数据

Fork 数

0

开放 Issue

0

开源协议

MIT

最近更新

2026-07-30

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它将基于源码的端口风格方法与多源包数据库结合,全部用 Zig 实现为单个静态二进制文件,无运行时依赖。

适合谁使用

  • 对系统编程感兴趣的 Zig 开发者
  • 偏好从源码编译的 Linux 用户
  • 探索包管理器内部机制的爱好者
  • 使用 Crux、KISS 或 Void Linux 并希望统一工具的用户

典型使用场景

  • 自动检测构建系统并从源码安装软件
  • 学习包管理器如何获取、构建和暂存包
  • 跨多种配方格式测试构建系统兼容性
  • 作为日常驱动的源码安装实验项目

项目优势

  • 用 Zig 编写,编译为单个静态二进制文件,无运行时依赖
  • 聚合三个 Linux 发行版的配方,具有确定性去重
  • 自动检测构建系统(autotools、make、cmake、meson),无需手动配置
  • 最小化设计:专注少数功能,不干扰用户

使用前须知

  • 早期学习项目,尚未达到生产可用
  • 需要外部工具(git、curl、tar、bash、awk、C 工具链)才能操作
  • 尚未实现依赖解析或基于文件列表的卸载
  • 仅限 Linux,未提及跨平台支持

README 快速开始

⚡ 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

项目描述

A minimal, source-based package manager

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

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