Rust write API
zed-api-server.rs owns authenticated publication and
other state changes. Keep it behind your identity, authorization,
and network controls.
The hosted service is one deployment of an open Rust system. Organizations can point the CLI at their own registry, keep package metadata in Postgres, store immutable archives in S3-compatible object storage, and choose whether any public edge fallback is appropriate.
zed-api-server.rs owns authenticated publication and
other state changes. Keep it behind your identity, authorization,
and network controls.
Stores package coordinates, versions, ownership, policy, and publication metadata. Backups and migration gates belong in the same operational plan as the application.
Stores immutable tar.gz or zip artifacts by content identity. Cloudflare R2 is supported by the hosted topology, but the storage boundary is designed around S3-compatible APIs.
zed-web-server.rs provides the Rust MASH web surface
for browsing and account-aware product workflows. A CLI-only
private registry can operate without exposing a public marketing
application.
Cloudflare workers can separate public metadata and artifact reads from the origin, but private deployments should enable only routes that match their disclosure and trust policy.
The registry base is an explicit global CLI setting. Keep production, staging, and isolated test homes separate so cached state cannot make a readiness test appear healthier than a clean client.
export ZED_PKG_REGISTRY="https://registry.packages.example" export ZED_PKG_HOME="$HOME/.zed-pkg-example" zed validate zed install zed install --frozen
For package development and isolated CI, Zed also supports a
file:// registry. Loopback and file registries stay
hermetic by default instead of unexpectedly reaching public mirrors.
| Decision | Questions | Conservative starting point |
|---|---|---|
| Network exposure | Which metadata and artifact routes are public, private, or VPN-only? | Keep writes private; expose reads only when package visibility is independently enforced. |
| Identity and authorization | Who may claim namespaces, publish, yank, or manage organizations? | Centralize authentication at the write/API boundary and audit every mutation. |
| Artifact retention | How long are immutable versions retained, replicated, and backed up? | Never overwrite a version; replicate content-addressed objects before promising availability. |
| Mirror trust | May public or internal mirrors answer metadata, bytes, or neither? | Permit pinned byte fallback first; require signed metadata and explicit client trust for range resolution. |
| Failure routing | What happens when Postgres, object storage, or an edge worker is unavailable? | Fail writes closed, preserve typed health signals, and test clean-client frozen restore regularly. |