Thanks to visit codestin.com
Credit goes to github.com

Skip to content

dariusc93/Zoi

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

379 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
ZDS Logo

Zoi

Universal Package Manager & Environment Setup Tool






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)

About

Universal Package Manager & Environment Setup Tool, GitLab Mirror

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 90.7%
  • Shell 5.9%
  • PowerShell 2.0%
  • JavaScript 0.5%
  • Makefile 0.4%
  • Ruby 0.3%
  • Dockerfile 0.2%