Why I replaced Nexus with a 32MB binary

# rust# docker# devops# opensource
Why I replaced Nexus with a 32MB binarydevitway

Every artifact registry I've used is bloated. Nexus wants 4GB RAM. Artifactory is even heavier. I...

Every artifact registry I've used is bloated. Nexus wants 4GB RAM. Artifactory is even heavier. I just want to store Docker images and Maven JARs.
So I built NORA — a multi-protocol artifact registry in Rust.

The numbers

NORA: Startup <3s, RAM <100MB, Image 32MB, MIT license

Nexus: Startup 30-60s, RAM 2-4GB, Image 600MB+, EPL/Commercial

Artifactory: Startup 30-60s, RAM 2-4GB, Image 1GB+, Commercial

What it does

One binary handles all of these:

  • Docker Registry v2 — full OCI spec, pull-through cache for Docker Hub/GHCR
  • Maven — host JARs + proxy to Maven Central
  • npm — private packages + proxy to npmjs.org
  • Cargo — Rust crates hosting
  • PyPI — pip-compatible index

Try it in 10 seconds

docker run -p 4000:4000 ghcr.io/getnora-io/nora:latest
Enter fullscreen mode Exit fullscreen mode

Open http://localhost:4000/ui/ — that's it.

Tech stack

Built with Axum + Tokio. No database — just filesystem or S3. AtomicU64 for lock-free metrics, Tower middleware for auth and rate
limiting, streaming uploads with async background caching.

Links

MIT licensed, contributions welcome.