-
-
Notifications
You must be signed in to change notification settings - Fork 3
cli guide
cargo install --path crates/nestforge-clinestforge new <app-name>
nestforge new <app-name> --transport <http|graphql|grpc|microservices|websockets>
nestforge g module <name>
nestforge g resource <name>
nestforge g controller <name>
nestforge g service <name>
nestforge g guard <name>
nestforge g decorator <name>
nestforge g filter <name>
nestforge g middleware <name>
nestforge g interceptor <name>
nestforge g serializer <name>
nestforge g graphql <name>
nestforge g grpc <name>
nestforge g gateway <name>
nestforge g microservice <name>
nestforge db init
nestforge db generate <name>
nestforge db migrate
nestforge db status
nestforge docs
nestforge fmt
nestforge new demo-apiCreates a runnable app with:
-
lib.rsroot barrel with app re-exports main.rsapp_module.rs- root app/health controllers
- guards/interceptors folders
-
.envand.env.example
Generate a GraphQL-first app:
nestforge new demo-graphql --transport graphqlCreates:
src/graphql/schema.rs- GraphQL bootstrap in
main.rs - GraphiQL mounted at
/
Generate a gRPC-first app:
nestforge new demo-grpc --transport grpcCreates:
proto/greeter.proto-
build.rsfor tonic code generation src/grpc/service.rs- gRPC bootstrap in
main.rs
Generate a WebSocket-first app:
nestforge new demo-events --transport websocketsCreates:
src/ws/events_gateway.rssrc/ws/mod.rs- WebSocket bootstrap in
main.rs
Generate a microservices-first app:
nestforge new demo-bus --transport microservicesCreates:
src/microservices/app_patterns.rssrc/microservices/mod.rs- in-process client bootstrap in
main.rs
nestforge g module usersCreates Nest-style feature structure:
src/users/mod.rssrc/users/controllers/*src/users/services/*src/users/dto/*
Also patches main.rs and app_module.rs imports.
For newer scaffolds, the CLI also patches the root src/lib.rs barrel so app-level imports can
stay flat.
nestforge g resource users --module usersGenerates DTOs, service, controller inside the target module and wires exports/providers/controllers.
nestforge g guard auth
nestforge g decorator correlation_id
nestforge g filter rewrite_bad_request
nestforge g middleware audit
nestforge g interceptor logging
nestforge g serializer usernestforge g decorator <name> creates src/decorators/<name>_decorator.rs plus export wiring in src/decorators/mod.rs.
nestforge g filter <name> creates src/filters/<name>_filter.rs plus export wiring in src/filters/mod.rs.
nestforge g middleware <name> creates src/middleware/<name>_middleware.rs plus export wiring in src/middleware/mod.rs.
nestforge g serializer <name> creates src/serializers/<name>_serializer.rs plus export wiring in src/serializers/mod.rs.
Generate a GraphQL resolver stub:
nestforge g graphql usersCreates:
src/graphql/users_resolver.rs- export wiring in
src/graphql/mod.rs
Generate a gRPC service stub:
nestforge g grpc billingCreates:
proto/billing.protosrc/grpc/billing_service.rs-
src/grpc/mod.rsupdates for the generated proto package and service export -
build.rsupdates so tonic compiles the new proto file
Generate a WebSocket gateway stub:
nestforge g gateway eventsCreates:
src/ws/events_gateway.rs-
src/ws/mod.rsexport wiring
Generate a microservice pattern registry stub:
nestforge g microservice usersCreates:
src/microservices/users_patterns.rs-
src/microservices/mod.rsexport wiring
The generated stub expects the microservices feature to be enabled on nestforge.
nestforge db initCreates:
migrations/.nestforge/applied_migrations.txt
nestforge db generate create_users_tableCreates a timestamped SQL file in migrations/.
nestforge db migrateRuns pending SQL migrations using DATABASE_URL.
nestforge db statusShows applied, pending, and drift migration status.
-
nestforge docs: opens the interactive CLI docs browser in your terminal.- Navigation:
-
j/Down: Next topic -
k/Up: Previous topic -
PageDown: Scroll content down -
PageUp: Scroll content up -
/: Search topics -
q/Esc: Quit
-
- Use
--no-tuiif you prefer plain text output for pipes or basic terminals. - Pass a topic like
nestforge docs modulesto jump directly to a page.
- Navigation:
-
nestforge export-docs: writes OpenAPI output for the current app -
nestforge fmt: runscargo fmt
New scaffolds now generate:
- a root
src/lib.rsbarrel withpub usere-exports for top-level app symbols - a slimmer
src/main.rsthat imports from the package crate -
use nestforge::prelude::*;for common framework imports
That gives generated apps a flatter import style, for example:
use demo_api::AppModule;
use nestforge::prelude::*;- Run generator commands inside an app folder (
Cargo.toml+src/). - Use
--module <feature>to generate inside a feature module. - GraphQL and gRPC app templates still include
APP_NAMEand an optionalDATABASE_URLplaceholder in.env. - The microservices app template uses the
testingfeature as a lightweight runtime bootstrap for the in-process client example. - The gRPC template expects
protocto be available when you build the generated app. - The microservice generator expects the
microservicesfeature to be enabled in the target app.
NestForge Docs | Home | Quick Start | Project Structure | GitHub Repo