# Nestrs > Nestrs brings the familiar NestJS module/controller/provider model to Rust with full Axum and Tower performance. Build fast, structured APIs in Rust. ## Docs - [AGENTS](https://nestrs.mintlify.app/AGENTS.md) - [nestrs-core: DI container and module runtime](https://nestrs.mintlify.app/api/crates/nestrs-core.md): Reference for nestrs-core: ProviderRegistry, ModuleRef, DiscoveryService, ExecutionContext, RouteRegistry, MetadataRegistry, and all core traits. - [nestrs-microservices: transport adapters](https://nestrs.mintlify.app/api/crates/nestrs-microservices.md): Reference for nestrs-microservices: available transports, feature flags, ClientProxy, ClientsModule, EventBus, and message handler patterns. - [nestrs-openapi: OpenAPI and Swagger UI](https://nestrs.mintlify.app/api/crates/nestrs-openapi.md): Reference for nestrs-openapi: OpenApiOptions, enable_openapi, the #[openapi] macro, security scheme documentation, and the generated JSON spec endpoint. - [Dependency injection macros in nestrs](https://nestrs.mintlify.app/api/macros/di.md): Reference for the nestrs DI macros: #[module], #[injectable] with scope variants, #[set_metadata], and #[roles] for handler metadata. - [HTTP routing macros in nestrs](https://nestrs.mintlify.app/api/macros/routing.md): Reference for every HTTP routing macro in nestrs: controller, routes, HTTP method macros, response shaping, versioning, SSE, and impl_routes!. - [DTO validation macros in nestrs](https://nestrs.mintlify.app/api/macros/validation.md): Reference for #[dto], the NestDto trait, and all field validation attributes including IsEmail, Length, Min, Max, ValidateNested, and more. - [NestApplication: configure and launch your server](https://nestrs.mintlify.app/api/nest-application.md): Complete reference for every NestApplication builder method—routing, security, performance, observability, and launch—grouped by category. - [NestFactory: bootstrap your nestrs application](https://nestrs.mintlify.app/api/nest-factory.md): Reference for all NestFactory methods that create HTTP applications, microservice servers, and hybrid processes across every transport adapter. - [Generate code with nestrs generate](https://nestrs.mintlify.app/cli/generate.md): Use nestrs generate (or nestrs g) to scaffold services, controllers, modules, DTOs, guards, pipes, filters, interceptors, and full CRUD resources. - [nestrs CLI: scaffold and manage projects](https://nestrs.mintlify.app/cli/overview.md): Install nestrs-scaffold, create new projects with nestrs new, generate code with nestrs generate, and diagnose your setup with nestrs doctor. - [Controllers and HTTP routing in nestrs](https://nestrs.mintlify.app/concepts/controllers.md): Define route handlers with #[controller] and #[routes], use HTTP method macros, extract path and query parameters, and inject services via Axum's State extractor. - [Dependency injection in nestrs](https://nestrs.mintlify.app/concepts/dependency-injection.md): Understand how nestrs resolves providers at runtime through ProviderRegistry and ModuleRef, the three injection scopes, and how to use request-scoped providers. - [Middleware pipeline: guards, pipes, and interceptors](https://nestrs.mintlify.app/concepts/middleware-pipeline.md): Learn the nestrs cross-cutting pipeline — exception filters, guards, interceptors, and pipes — and how to apply them at route, controller, and global scope. - [nestrs modules: organize your application](https://nestrs.mintlify.app/concepts/modules.md): Learn how the #[module] macro organizes controllers and providers into composable feature modules, and how the module lifecycle drives startup and shutdown. - [Providers and services in nestrs](https://nestrs.mintlify.app/concepts/providers.md): Mark types as injectable with #[injectable], register them in modules, inject via State>, and use custom factory providers for advanced construction. - [Local development](https://nestrs.mintlify.app/deployment.md): Run the Mintlify dev server to preview documentation before you push. - [Add caching to nestrs with CacheModule](https://nestrs.mintlify.app/ecosystem/caching.md): CacheModule gives you an injectable CacheService with get, set, del, and ttl. Swap the in-memory default for Redis by enabling the cache-redis Cargo feature. - [Database integration with nestrs](https://nestrs.mintlify.app/ecosystem/database.md): nestrs supports SQL via SqlxDatabaseModule for direct AnyPool queries or nestrs-prisma for Prisma-style schema-driven access. MongoDB support is also available. - [Generate OpenAPI docs for your nestrs API](https://nestrs.mintlify.app/ecosystem/openapi.md): nestrs-openapi serves an OpenAPI 3.1 JSON document and Swagger UI for all routes registered via #[routes]. Enable it with one method call on NestApplication. - [nestrs ecosystem: optional modules and features](https://nestrs.mintlify.app/ecosystem/overview.md): nestrs optional modules cover caching, scheduling, queues, i18n, and databases. Enable each with a Cargo feature flag and register it like any other module. - [Schedule recurring tasks in nestrs](https://nestrs.mintlify.app/ecosystem/scheduling.md): ScheduleModule runs cron jobs and interval tasks inside nestrs. Declare scheduled work with #[cron] and #[interval] macros on a #[schedule_routes] impl block. - [Version your nestrs API routes](https://nestrs.mintlify.app/guides/api-versioning.md): nestrs supports URI, header, and media-type versioning. Annotate individual routes with #[ver] or #[version] to control which version each handler responds to. - [GraphQL and WebSocket APIs with nestrs](https://nestrs.mintlify.app/guides/graphql-websockets.md): Add a GraphQL endpoint with nestrs-graphql and async-graphql, or build real-time WebSocket gateways using nestrs-ws, #[ws_gateway], and #[subscribe_message]. - [Build microservices with nestrs transports](https://nestrs.mintlify.app/guides/microservices.md): Run nestrs microservice servers over TCP, NATS, Redis, Kafka, MQTT, RabbitMQ, or gRPC. Connect services with ClientsModule and the #[message_pattern] macros. - [Add metrics and tracing to nestrs apps](https://nestrs.mintlify.app/guides/observability.md): Wire up structured request logs, Prometheus RED metrics, and optional OpenTelemetry span export in a few builder calls on NestApplication. - [Secure your nestrs API](https://nestrs.mintlify.app/guides/security.md): Configure security headers, CORS, rate limiting, CSRF, cookies, and auth guards to harden your nestrs API. Includes a pre-production security checklist. - [Validate request data with DTOs in nestrs](https://nestrs.mintlify.app/guides/validation.md): Define validated request shapes with #[dto] and field attributes. Bind them to handlers via ValidatedBody, ValidatedPath, and ValidatedQuery extractors. - [nestrs: NestJS-style framework for Rust](https://nestrs.mintlify.app/index.md): nestrs brings the familiar NestJS module/controller/provider model to Rust with full Axum and Tower performance. Build fast, structured APIs in Rust. - [Install nestrs and configure Cargo features](https://nestrs.mintlify.app/installation.md): Add nestrs to your Cargo.toml, set up the tokio async runtime, choose optional feature flags, and configure release profile settings for production builds. - [What is nestrs? NestJS architecture for Rust](https://nestrs.mintlify.app/introduction.md): nestrs brings the NestJS module/controller/provider model to Rust, built on Axum and Tower for full async performance without sacrificing structure. - [Migrate from NestJS to nestrs](https://nestrs.mintlify.app/migration/from-nestjs.md): A comprehensive side-by-side mapping of NestJS concepts—decorators, modules, guards, pipes, and more—to their nestrs equivalents in Rust. - [Get started with nestrs in under 5 minutes](https://nestrs.mintlify.app/quickstart.md): Scaffold a new nestrs project with the CLI, run the server, and make your first HTTP request — step by step from zero to a working API. - [Recipe G — Event-driven architecture](https://nestrs.mintlify.app/recipes/event-driven.md): emit vs send, event_pattern handlers, EventBus and on_event, outbox pattern, CQRS read models, idempotency. - [Recipe D — GraphQL + MongoDB](https://nestrs.mintlify.app/recipes/graphql-mongo.md): GraphQL resolvers over MongoService, SimpleObject mapping, single-file bootstrap, BSON mutations. - [Recipe C — GraphQL + PostgreSQL + Prisma](https://nestrs.mintlify.app/recipes/graphql-prisma.md): async-graphql with PrismaService, nestrs-graphql limits, mutations, CRUD resolvers, global prefix and batch POST. - [Recipe E — gRPC microservice + Prisma](https://nestrs.mintlify.app/recipes/grpc-microservice.md): micro_routes message_pattern handlers over gRPC JSON wire, PrismaService, hybrid also_listen_http, TCP alternative. - [Recipe F — Microservices + message brokers](https://nestrs.mintlify.app/recipes/message-brokers.md): NATS, Redis, RabbitMQ listeners via NestFactory; ClientProxy callers; Kafka listener notes; ClientsModule multi-broker HTTP apps. - [Backend stack recipes](https://nestrs.mintlify.app/recipes/overview.md): Choose a recipe for REST + Prisma, MongoDB, GraphQL, gRPC microservices, message brokers, and event-driven patterns. Copy-paste Cargo.toml, bootstrap, and CRUD examples. - [Recipe B — REST + MongoDB](https://nestrs.mintlify.app/recipes/rest-mongo.md): MongoModule bootstrap, BSON ProfileDoc, indexes, CRUD routes, Docker, and GraphQL pairing (Recipe D). - [Recipe A — REST + PostgreSQL + Prisma](https://nestrs.mintlify.app/recipes/rest-prisma.md): HTTP APIs with nestrs-prisma PrismaService, prisma_model!, REST CRUD, SQLite/Postgres/MySQL variants, hello-app demo.