Skip to content

About mise-server

mise-server is a pull-through cache proxy for package registries. It caches npm, PyPI, Go, GitHub releases, RubyGems, Maven, APT, Conda, NuGet, Helm, Cargo, and Docker packages — speeding up dependency installs and providing air-gapped access.

Why

  • Speed — Cache dependencies close to your build infrastructure. No more waiting on upstream registries.
  • Reliability — Serve packages even when upstream registries are down or unreachable.
  • Air-gapped environments — Pre-populate the cache, then deploy without internet access.
  • Security — Scan cached packages for vulnerabilities, enforce license policies, control access with fine-grained ACL.
  • Cost — Reduce egress bandwidth from upstream registries.

Architecture

mise-server is a single Rust binary backed by PostgreSQL (metadata) and S3-compatible storage (blobs). It's stateless enough to run multiple instances behind a load balancer.

Client → mise-server → S3 (blobs)
                     → PostgreSQL (metadata)
                     → Upstream Registry (on cache miss)

License

FSL-1.1-ALv2 — converts to Apache 2.0 on 2027-02-21.

Licensed under FSL-1.1-ALv2. Maintained by @jdx.