Changelog
All notable changes to zap are documented here.
0.1.1 (2025-01-18)
New Features
- Python Version Management - Download and manage Python versions directly with zap.
zap python install 3.12 zap python list zap init --python 3.12Python versions are downloaded from python-build-standalone and installed to
~/.zap/python/. - Git Dependencies - Install packages directly from git repositories.
zap append git=https://github.com/user/repo zap append git=https://github.com/user/repo@main zap append git=https://github.com/user/repo@v1.0.0 - requirements.txt Support - Import existing projects with the new install command.
zap install -r requirements.txt - Native C/C++ Compilation - Uses
zig ccas the C/C++ compiler for building source distributions. No need to install gcc or clang separately. - PEP 440 Version Parsing - Full support for Python version specifiers including pre-releases, post-releases, and dev versions.
Bug Fixes
- Fixed race condition in HTTP temp file handling - now uses unique temp files with random names.
- Fixed dependency name parsing for constraints like
pluggy<2,>=1.5- now correctly extracts package name. - Fixed handling of comma-separated version constraints in requirements parsing.
Improvements
- Replaced shell commands with native Zig implementations:
whichreplaced with native PATH scanningcp -rreplaced with native file copytar -xzfreplaced with native tar/gzip extraction
- Added comprehensive unit tests for core modules (pyproject, wheel, cache, lock, version, requirements, git).
- Improved sdist building with proper build isolation and fallback strategies.
- Git dependencies now install their own requirements.txt dependencies recursively.
New Modules
src/version.zig- PEP 440 version parsing and comparisonsrc/build.zig- Source distribution building with pip/buildsrc/git.zig- Git dependency installationsrc/requirements.zig- requirements.txt parsingsrc/python_download.zig- Python version management
0.1.0 (2025-01-15)
Initial Release
First public release of zap - a fast Python package manager written in Zig.
Features
- Initialize Python projects with virtual environments (
zap init) - Install packages from PyPI (
zap append) - Remove packages (
zap remove) - Sync dependencies from pyproject.toml (
zap sync) - Run Python scripts in venv (
zap run) - List installed packages (
zap list) - Global package cache at
~/.cache/zap/ - Lock file support (
zap.lock) - Native HTTP client (no curl dependency)
- Native wheel extraction (no unzip dependency)
Technical Details
- Written in Zig 0.15.2
- Zero external dependencies
- ~8 MB binary size
- Supports Linux and macOS (x86_64, aarch64)