zoi-rs

Crates.iozoi-rs
lib.rszoi-rs
version5.0.2-beta
created_at2025-08-13 03:01:10.80711+00
updated_at2025-09-09 03:05:29.232852+00
descriptionUniversal Package Manager & Environment Setup Tool
homepagehttps://zillowe.qzz.io/zds/zoi
repositoryhttps://gitlab.com/Zillowe/Zillwen/Zusty/Zoi
max_upload_size
id1793196
size635,136
Zaid (ZilloweZ)

documentation

https://zillowe.qzz.io/docs/zds/zoi

README

ZDS Logo

Zoi

Universal Package Manager & Environment Setup Tool


GitLab Latest Release GitLab Pipeline Status
AUR Version Homebrew Version Scoop Version
Crates.io Version

DocsPackage RegistryDiscordSecurityContributingRoadmapChangelog
Report a BugRequest a FeatureRequest an Enhancement
Code of ConductRelease Guidelines



Table of Contents

Zoi is a universal package manager and environment setup tool, designed to simplify package management and environment configuration across multiple operating systems.

✨ Features

  • Cross-Platform: Works seamlessly on Linux, macOS, and Windows.
  • Dynamic Package Definitions: Define packages with dynamic Lua scripts (.pkg.lua) for maximum flexibility.
  • Universal Package Support: Install from binaries, compressed archives, source, or installer scripts.
  • Extensive Dependency Management: Integrates with over 40 package managers (apt, brew, cargo, npm, pip, etc.).
  • Rich Dependencies: Define runtime and build dependencies with required, optional, and selectable options.
  • Project Environments: Manage project-specific commands and environments with zoi.yaml.
  • Repository-Based: Use official, community, or your own private/public Git-based repositories.
  • Secure & Verifiable: Verifies package integrity and authenticity with checksums and GPG signatures. Manage keys with zoi pgp.
  • Versatile Package Types: Supports standard packages, collections, services, configs, app templates, extensions, libraries, and inline scripts.
  • Local Package Development: A dedicated zoi package command set (meta, build, install) to streamline creating and testing packages locally.
  • Advanced CLI Tools:
    • zoi man: Read package manuals in the terminal.
    • zoi why: Understand why a package is installed.
    • zoi rollback: Revert a package to its previous version.
    • zoi pin: Pin a package to a specific version.
    • zoi exec: Run a package without installing it.
  • Library Support: Use as a Rust library and get compiler/linker flags via zoi pkg-config.

🚀 Getting Started

Getting started with Zoi is simple. Just follow these three steps:

  1. Install Zoi: Choose one of the installation methods below.

  2. Sync Repositories: Before you can install packages, you need to sync the package repositories.

    zoi sync
    
  3. Install a Package: Now you can install any package you want. For example, to install hello:

    zoi install hello
    

📦 Installation

You can install Zoi using a package manager, an installer script, or by building it from source.

Package Managers

Arch Linux (AUR)

Install zoi-bin (Pre-compiled binary) or zoi (built from source) from the AUR using your favorite helper (e.g. yay, paru):

yay -S zoi-bin

Or manually without any helpers:

git clone https://aur.archlinux.org/zoi-bin.git
cd zoi-bin
makepkg -si

macOS (Homebrew)

Install Zoi using Homebrew:

brew install Zillowe/tap/zoi

Windows (Scoop)

Install Zoi using Scoop:

scoop bucket add zillowe https://github.com/Zillowe/scoop.git
scoop install zoi

Crates.io

You can install zoi directly from crates.io using cargo:

cargo install zoi-rs

NPM

You can install @zillowe/zoi from npm also.

npx @zillowe/zoi
bunx @zillowe/zoi
pnpm dlx @zillowe/zoi
yarn dlx @zillowe/zoi

📜 Scripts

You can also use our installer scripts for a quick setup.

Linux / macOS :

curl -fsSL https://zillowe.pages.dev/scripts/zoi/install.sh | bash

Windows:

powershell -c "irm zillowe.pages.dev/scripts/zoi/install.ps1|iex"

🛠️ Build from Source

If you prefer, you can build Zoi from source. You'll need Rust installed.

Build the release binary:

# For Linux/macOS
./build/build-release.sh

# For Windows
./build/build-release.ps1

Install it locally:

./configure
make
sudo make install
# Install CLI completions (bash, zsh, fish, elvish, powershell)
make install-completion

💻 Platforms

What platforms we currently support.

OS Arch Zoi Binary Packages Support
Linux amd64 ✔️ ✔️
Linux arm64 ✔️ ✔️
macOS arm64 ✔️ ✔️
macOS amd64 ✔️ ✔️
Windows amd64 ✔️ ✔️
Windows arm64 ✔️
FreeBSD amd64 ✔️
FreeBSD arm64 ✔️
OpenBSD amd64 ✔️
OpenBSD arm64 ✔️

We're planning to add support for more platforms.

🔗 Dependencies Support

What dependency installation we support.

Manager Ecosystem / OS Example
zoi Zoi zoi:my-other-package
native System's native package manager native:openssl
script Script execution script:website.com/install
apt, apt-get Debian, Ubuntu, etc. apt:libssl-dev
pacman Arch Linux pacman:base-devel
yay, paru Arch Linux (AUR) yay:google-chrome
aur Arch Linux (AUR) aur:visual-studio-code-bin
brew macOS (Homebrew) brew:node
scoop Windows scoop:git
snap Linux (Snapcraft) snap:node
flatpak Linux (Flathub) flatpak:org.gimp.GIMP
pkg FreeBSD pkg:git
pkg_add OpenBSD pkg_add:git
cargo Rust cargo:ripgrep
cargo-binstall Rust (pre-compiled binaries) cargo-binstall:ripgrep
go Go go:golang.org/x/tools/cmd/goimports
npm Node.js npm:typescript
bun Bun bun:elysia
deno Deno deno:npm-chalk or deno:jsr-@std/bytes (the - instead of : is important)
jsr JavaScript Registry jsr:@std/http
pip Python pip:requests
nix NixOS / Nix nix:nixpkgs.hello

And many more.

For more dependencies and information please visit the Dependencies Page on Docs.

Some of the package manager are OS specific, so when a dependency is in that package manager it only installs it for that OS.

But some other package managers like npm, it installs the dependency if the package manager is available.

💡 Usage

Here are some common commands to get you started.

  • Install a package:

    zoi install <package_name>
    
  • Uninstall a package:

    zoi uninstall <package_name>
    
  • Install from a specific repository:

    zoi install @<repo_name>/<package_name>
    
  • List all available packages from active repos:

    zoi list --all
    
  • List packages from a specific repo:

    zoi list --all --repo <repo_name>
    
  • Search for a package:

    zoi search <term>
    
  • Search for a package from a specific repo:

    zoi search <term> @<repo_name>
    
  • Add a new repository:

    # Interactively
    zoi repo add
    
    # By name
    zoi repo add <repo_name>
    # From a git repo
    zoi repo add https://github.com/<user_name>/<repo_name>.git
    
  • Update Zoi to the latest version:

    zoi upgrade
    

For more detailed information, please refer to the Docs.

📦 Packaging Status

Packaging status

🤝 Contributing

We welcome contributions from the community! If you'd like to contribute, please read our Contributing Guidelines for more information.

New features, enhancements and bug reports are welcome.

📚 Repositories & Mirrors

Zoi is hosted on multiple forges. The primary locations and mirrors are:

Repository tiers

  • Core: Essential packages, libraries and very common/maintained packages.
  • Main: Packages that don't fit in Core but are essential for most people.
  • Extra: Packages that are new, not very common or maintained, not preferable.
  • Community: User submitted packages that are new, can be upgraded to a higher repo.
  • Test: Testing repo for new Zoi features and for new packages before release.
  • Archive: Archived packages that are no longer maintained.

For details and CLI usage examples, see the docs page: Repositories.

Nel Package Registry

Zoi has an online package registry, the Nel Registry, where you can browse, search, and view packages available in the official Zoi repositories.

📜 License

Zoi is licensed under the Apache 2.0 License.


Zoi is developed by Zusty < Zillowe Foundation
Part of the Zillowe Development Suite (ZDS)

Commit count: 0

cargo fmt