Command Palette

Search for a command to run…

ZarynZaryn
registry · containers · npm · PyPI · Rust · Zig · any file

Packages

Publish with the tools you already use: docker push, npm publish, twine upload, cargo publish, a Zig package archive, or any file. Every file and layer is stored by its sha256, and clients check that hash when they install. Kubernetes, Helm and cosign talk to the container registry directly.

Mirrors: faster installs you don’t have to trust

How does this work?

When pypi.org, npmjs.com, crates.io, static.rust-lang.org, GitHub or ziglang.org are slow or out of reach, install through Zaryn instead. Zaryn checks every file against the checksum your tools already know before keeping it, and your tools check it again when it arrives, so a mirror can never hand you something different. Files Zaryn has once keep working even when the original site is down.

Everything at once, from your terminal

Guide

With the zev command installed, one line sets up cargo, npm, pip, uv and rustup; zev mirror off puts everything back.

zev mirror on

Rust · crates.io and rustup

Guide

Add this to ~/.cargo/config.toml. cargo build, cargo add and cargo update then get every crate through Zaryn; nothing else changes.

# ~/.cargo/config.toml
[source.crates-io]
replace-with = "zaryn"

[source.zaryn]
registry = "sparse+https://zaryn.xyz/api/v1/packages/cargo/mirror/index/"

Rust itself (rustup)

Guide

Installs and updates Rust when static.rust-lang.org is out of reach. Put the two exports in ~/.bashrc.

export RUSTUP_DIST_SERVER=https://zaryn.xyz/api/v1/packages/rust/-
export RUSTUP_UPDATE_ROOT=https://zaryn.xyz/api/v1/packages/rust/-/rustup

# first install
curl -sSf https://zaryn.xyz/api/v1/packages/rust/-/rustup/rustup-init.sh | sh

Zig · dependencies

Guide

Zig has no mirror setting, so the addresses in build.zig.zon are changed instead (archives, .zip files and git+https repositories). The hashes stay exactly as they are: zig still checks every byte.

Python · pip, uv and Python itself

Guide

One index for your Zaryn projects and everything on pypi.org. A name that exists on Zaryn always comes from Zaryn, so a look-alike on pypi.org can never sneak into your installs.

pip config set global.index-url https://zaryn.xyz/api/v1/packages/pypi/all/simple/

# uv: packages and Python itself
export UV_DEFAULT_INDEX=https://zaryn.xyz/api/v1/packages/pypi/all/simple/
export UV_PYTHON_INSTALL_MIRROR=https://zaryn.xyz/api/v1/packages/python/-/standalone

JavaScript · npm, pnpm, yarn

Guide

Every package from registry.npmjs.org through Zaryn, each tarball checked against its sha512 integrity.

npm config set registry https://zaryn.xyz/api/v1/packages/npm-mirror/

Zig · the compiler itself

Guide

Any file from ziglang.org/download or ziglang.org/builds, by its file name, signatures (.minisig) included. Dev builds stay available here after ziglang.org removes them.

curl -LO https://zaryn.xyz/api/v1/packages/zig/-/toolchain/zig-x86_64-linux-0.15.1.tar.xz