Packages, explained
What a package is, what a registry does, and how Zaryn hosts packages for Rust, Zig, JavaScript, Python and containers, in plain words. Start here if you have never published one.
Search for a command to run…
What a package is, what a registry does, and how Zaryn hosts packages for Rust, Zig, JavaScript, Python and containers, in plain words. Start here if you have never published one.
A package is a piece of code packed up so other people (or your other projects) can use it with one command. Instead of copying files around, you publish the package once, and anyone can install it by name.
A package manager is the tool that does the installing: cargo for Rust, zig for Zig, npm for JavaScript, pip for Python, docker for container images. A registry is the place the package manager downloads from. Zaryn is a registry for all of them, so you keep using the tool you know and only tell it where Zaryn is.
| You write… | You use… | Guide |
|---|---|---|
| Rust | cargo | Rust packages (crates) |
| Zig | zig fetch, zig build | Zig packages |
| JavaScript or TypeScript | npm, pnpm, yarn | npm packages |
| Python | pip, twine, uv | Python packages |
| Apps in containers | docker, podman, helm | Container images |
| Anything else (a program, a dataset) | curl | Any file |
Every guide has the same parts: set up once, publish, install, and what to do when something goes wrong. On the Packages page, the small ? link next to each command opens the right guide.
That's what Zaryn's mirrors are for: pip, uv, npm, cargo, rustup and zig download through Zaryn instead (zev mirror on sets them all up), and every file is checked against a checksum your tools already know, so the mirror can't change anything. See Mirrors.
1.4.2. A published version never changes: to fix something, publish 1.4.3. That's what lets everyone trust that 1.4.2 today is the same as 1.4.2 next year.package:write permission: on Packages, press Create a publish token. Treat it like a password, and make a new one if it leaks.| Free | Premium | |
|---|---|---|
| Space for all your packages and images | 500 MB | 100 GB |
| Largest single file | 50 MB | 200 MB |
| Largest container image layer | 500 MB | 10 GB |
| Private packages | — | ✓ |
| Installing through the mirrors | ✓ | ✓ |
Installing other people's public packages, and using the mirrors, never counts against your space.
Names are first come, first served, separately for each kind: a Rust crate called tool and a Zig package called tool can belong to different people. Once you publish a name, only you (or the organization you published it for) can publish new versions of it.