Zillowe FoundationZillowe Documentation

Comparisons

How Zoi compares to other popular package managers like Pacman, APT, and Nix.

Zoi is a standalone, universal package manager with its own package format (.pkg.lua), build system, and local package repository. A key feature is its ability to integrate with and leverage existing system (like APT, Pacman) and language-specific (like Cargo, NPM) package managers for dependency resolution. This hybrid approach allows it to manage its own sandboxed packages while co-existing with the native tooling of an operating system.

This page compares Zoi to some other popular package managers.

FeatureZoiPacman (Arch Linux)APT (Debian/Ubuntu)Nix
TypeUniversal / HybridOS-specific (Arch Linux)OS-specific (Debian-based)Universal
Package Definition.pkg.lua (Lua script)PKGBUILD (Shell script)debian/ directory.nix expression
Dependency ManagementManages its own sandboxed packages. Can also install dependencies via other system/language managers.System-wide, managed by Pacman.System-wide, managed by APT.Purely functional. Dependencies are stored in /nix/store with unique hashes.
Package IsolationHigh. Packages are installed into versioned directories. Bins are symlinked.Low. Files are installed into system-wide locations like /usr.Low. Files are installed into system-wide locations.Very High. Packages are isolated in the Nix store. Environments are built from these components.
ReproducibilityMedium. Zoi packages are versioned, but dependencies from other managers can change.Medium. Depends on the state of Arch repositories.Medium. Depends on the state of APT repositories.Very High. Builds are bit-for-bit reproducible.
ConfigurationDeclarative (.pkg.lua) and imperative scripting.Declarative (PKGBUILD).Declarative (debian/control).Purely functional and declarative (.nix files).
Cross-platformYes (Linux, macOS, Windows).No (Arch Linux only).No (Debian-based Linux only).Yes (Linux, macOS).
Key IdeaProvide a self-contained, sandboxed package management system that is cross-platform and can integrate with other package managers.Simplicity and user-centrism for a specific rolling-release OS.Robustness and stability for a stable-release OS.Purely functional package management for reproducible, declarative, and reliable systems.

Summary

  • Choose Zoi if: You work across multiple operating systems, use many different programming languages, and want a unified way to manage your tools and project dependencies without interfering with your system's state. Its Lua-based packaging offers great flexibility.

  • Choose Pacman/APT if: You are happy with your OS's native package manager and primarily need to manage system-wide applications and libraries on a single machine.

  • Choose Nix if: Your primary goal is maximum reproducibility and reliability. You want to build environments declaratively and are willing to learn the Nix language and its functional concepts.


Last updated on

On this page