<p align="center">
<img src="assets/wordmark.svg" alt="NestRS" width="220">
</p>
<p align="center">
<strong>Scalable Rust backend apps with native performance.</strong>
</p>
<p align="center">
<img src="https://img.shields.io/badge/built%20with-Rust-CE412B?logo=rust&logoColor=white" alt="Built with Rust">
<img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License">
<img src="https://img.shields.io/badge/status-alpha-orange" alt="Status: alpha">
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen" alt="PRs welcome">
</p>
<p align="center">
<a href="https://nestrs.dev"><strong>nestrs.dev</strong></a> — full documentation, tutorials and API reference.
</p>
[!NOTE]
Alpha — under active development. The API still shifts and rough edges
remain, so it is not production-ready yet. Stars and early feedback are very
welcome.
Why NestRS
- ⚡ Rust-native speed. ~25× the throughput of an equivalent Node service on
the same CPU budget (~13× per core), with a sub-millisecond p99 — built on the
same hyper/tokio core as the fastest Rust web frameworks, with no GC pauses and
tail latencies that stay flat under load. See the benchmark.
- 🪶 An order of magnitude less memory. ~4 MB idle and ~6 MB under load, versus
~80–120 MB for the same Node service — roughly 18–20× lighter, for smaller
instances, higher density, and a lighter cloud bill.
- 🚀 Boots in milliseconds. A single static native binary with no runtime to
warm up — friendly to autoscaling and cold starts.
- 🧩 Declarative by design.
#[module], #[controller], #[injectable],
#[resolver], #[processor] — features are wired with attribute macros, not
hand-written boilerplate.
- 🛡️ Verified before it serves. The DI graph is wired by macros and checked at
boot — a module can inject only what its imports reach (a compile-time
encapsulation boundary a runtime
exports list can't enforce), with no
reflection