nestrs
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Nestrs is a Rust web framework that lets you build structured APIs using the same architectural patterns as NestJS — modules, controllers, providers, and dependency injection — while running on Axum and Tower. If your team already knows NestJS, nestrs gives you the same mental model with Rust’s performance and safety guarantees.
nestrs
NestJS-like API framework for Rust built on Axum and Tower.
nestrs gives you a familiar module/controller/provider mental model with Rust performance and explicit typing.
Highlights
- Module-oriented architecture (
module,controller,injectablemacros) - HTTP route macros (
get,post,put,patch,delete,options,head,all) - DI + application context — request scopes, lifecycle hooks,
useValue/useFactoryproviders with opt-in lifecycles - DTO validation pipeline, class-validator-style ergonomics, and extraction-time pipe chains (
#[use_pipes]—ValidationPipe,ParseIntPipe,TrimPipe, custom pipes) - Cross-cutting pipeline: guards, pipes, interceptors, exception filters, strategies
- Row-level authorization (
authz-row-level): deny-closedCrudService, module-qualified principals, masking subjects #[crud]generated controllers with paginated list endpoints (limit/offset)- Microservice transports via
nestrs-microservices: NATS, Redis, Kafka, RabbitMQ (AMQP 0.9), MQTT, TCP (length-prefixed, bounded frames), gRPC - GraphQL (async-graphql) incl. federation gateway (
EntityResolver,_service/_entities), data loaders, WebSocket subscriptions - OAuth2 via
nestrs-oauth2: 4 grant types incl. PKCE, JWKS-backed resource server, social providers (Google/GitHub/Microsoft/Apple),OAuth2Guard - Multi-cloud object storage via
nestrs-storage(S3 / GCS / Azure / Local, built onobject_store) - DB migrations + seeding:
nestrs-cli db migrate add|run|revert|infoanddb seed --bin|--seed-file - OpenAPI/Swagger via
nestrs-openapi, with#[dto]schemars reflection - CQRS (
nestrs-cqrs) and in-process events (nestrs-events) - Production controls: backpressure, bounded caches, rate limiting with proxy-topology awareness, metrics, request tracing, security runbooks
- Model Context Protocol server (
nestrs-mcp) for Claude Code, Cursor, VS Code, Codex CLI — project introspection, live runtime, scaffolding, docs search (guide) - Performance hardening workflows: benchmark gating (HTTP, DI, validated JSON), history tracking, dashboard artifacts; scheduled libFuzzer smoke runs
Ownership and release
- Maintainer / code owner: @Joshyahweh
- Current workspace version:
1.0.0(fromVERSIONand workspace package settings) — the first stable release; the public API is now covered by full semver (seeSTABILITY.md) - Release notes template:
.github/release-template.md - Changelog:
CHANGELOG.md - Contribution guide:
CONTRIBUTING.md - Release process:
RELEASE.md - Code of conduct:
CODE_OF_CONDUCT.md - Security disclosure policy:
SECURITY.md - Licenses:
LICENSE-MITandLICENSE-APACHE
Toolchain policy
- Rust edition:
2021(workspace-level) - MSRV:
1.88(tested in CI as1.88.0) - CI matrix: MSRV +
stable+beta - Contributor note: keep new crates on
edition.workspace = trueandrust-version.workspace = trueunless there is a documented exception
Project Layout
nestrs/- main framework crate (public runtime API)nestrs-core/- runtime primitives (context, traits, metadata, strategy)nestrs-macros/- proc macros and helper attributesnestrs-cli/- scaffold/generate CLI +dbmigrations/seeding (crates.io package name:nestrs-scaffold, binary:nestrs-cli)nestrs-prisma/- Prisma integration cratenestrs-microservices/- transport/client/event primitives (NATS, Redis, Kafka, RabbitMQ, MQTT, TCP, gRPC)nestrs-cqrs/- CQRS command/query bus primitivesnestrs-events/- in-process event bus (Nest-style@OnEventanalogue)nestrs-oauth2/- OAuth2 client, JWKS-backed resource server, social providers,OAuth2Guardnestrs-storage/- multi-cloud object storage (S3 / GCS / Azure / Local)nestrs-openapi/,nestrs-graphql/,nestrs-ws/- parity extension cratesnestrs-mcp/- Model Context Protocol server (stdio + Streamable HTTP)website/- landing page + docs hub (light/dark theme)
Quick Start
1) Build and test
cargo check --workspace
cargo test --workspace
2) Run an example app
cargo run -p hello-app
If the example package name differs in your local setup, run:
cargo run --manifest-path examples/hello-app/Cargo.toml
3) Preview website/docs locally
python3 -m http.server 4173
Then open:
http://localhost:4173/website/(landing page)http://localhost:4173/website/docs.html(documentation hub)
Documentation Index
Core docs
website/docs.html- docs portal entrypoint- NestJS → nestrs — mdBook:
docs/src/nestjs-migration.md; website hub:website/docs/migration/nestjs-to-nestrs.md - Security defaults & ordering — mdBook:
docs/src/secure-defaults.md,docs/src/http-pipeline-order.md - MCP / AI editor integration — mdBook:
docs/src/mcp.md; Mintlify:mintlify-docs/guides/mcp.mdx CHANGELOG.md- release historySTABILITY.md- semver, public vs#[doc(hidden)]API,test-hooks/ global registries
Platform/operations
PRODUCTION_RUNBOOK.md- deployment/operations runbookSECURITY.md- security guidance and controlsMICROSERVICES.md- microservices/event-driven patterns
Performance and benchmark ops
benchmarks/BASELINE.md- how to run, compare, and track benchmarksbenchmarks/relative_thresholds.json- active relative regression gate confignestrs/fuzz/andnestrs-microservices/fuzz/-cargo-fuzztargets (seePRODUCTION_RUNBOOK.md)
Storage + publishing
BENCHMARK_STORAGE_PLAYBOOK.md- long-term storage layout and restore workflowBENCHMARK_STORAGE_SECRETS_CHECKLIST.md- provider setup checklist (OIDC/least privilege).github/workflows/benchmark-storage-sync.yml- manual-dispatch storage sync template
Common Commands
# benchmark gates
python3 scripts/load/check_benchmark_thresholds.py
python3 scripts/load/check_benchmark_relative_regression.py
# benchmark reports and recommendation artifacts
python3 scripts/load/export_benchmark_report.py
python3 scripts/load/maintain_benchmark_history.py
python3 scripts/load/build_benchmark_dashboard.py
python3 scripts/load/recommend_relative_thresholds.py
python3 scripts/load/evaluate_threshold_reassessment.py
CI Workflows
.github/workflows/security.yml- security checks.github/workflows/ci.yml- PR/push checks on MSRV + stable + beta, plus fmt/clippy/docs/audit.github/workflows/performance.yml- performance benches, gating, reporting, optional publishing.github/workflows/fuzz.yml- weekly libFuzzer smoke (wire JSON, auth header, URI/JSON).github/workflows/benchmark-storage-sync.yml- storage sync template for S3/GCS/Azure.github/workflows/release-version-check.yml- enforcesVERSIONand latestCHANGELOG.mdrelease heading stay in sync.github/workflows/publish-crates.yml- tag-driven crates.io publish after preflight; usesCARGO_REGISTRY_TOKEN(optional OIDC/trusted publishing can replace this)
GitHub community templates
.github/ISSUE_TEMPLATE/bug_report.yml.github/ISSUE_TEMPLATE/feature_request.yml.github/ISSUE_TEMPLATE/config.yml.github/pull_request_template.md
Status
The tracked roadmap implementation is complete. Ongoing work is maintenance mode: periodic benchmark history accumulation and threshold re-evaluation when data changes.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found