DEV Community

devitway
devitway

Posted on

Why I replaced Nexus with a 32MB binary

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.

Top comments (0)