Reference

Overview

Complete reference for all NextRush packages — types, methods, and configuration options.

Every NextRush package is documented with full type signatures, method descriptions, and usage examples. Install only what you need. See the Packages A-Z index for a flat alphabetical lookup by npm name.

Which package do I need?

Start with nextrush — it includes routing, middleware, and the Node.js server. Add a package only when a specific need comes up:

I want to…InstallReference
Parse JSON / form request bodies@nextrush/body-parserbody-parser
Handle file uploads (multipart)@nextrush/form-dataform-data
Validate requests (Zod/Valibot/ArkType)@nextrush/validationvalidation
Generate OpenAPI docs from routes@nextrush/openapiopenapi
Stream AI/LLM responses (SSE, NDJSON)@nextrush/streamstream
Allow cross-origin requests (CORS)@nextrush/corscors
Set security headers@nextrush/helmethelmet
Rate-limit endpoints@nextrush/rate-limitrate-limit
Compress responses (gzip/brotli)@nextrush/compressioncompression
Read / write cookies@nextrush/cookiescookies
Protect against CSRF@nextrush/csrfcsrf
Add request IDs for tracing@nextrush/request-idrequest-id
Measure response time@nextrush/timertimer
Liveness/readiness probes@nextrush/healthhealth
Serve static files@nextrush/staticstatic
Add WebSocket support@nextrush/websocketwebsocket
Render HTML templates@nextrush/templatetemplate
Emit structured logs@nextrush/loggerlogger
Use a type-safe event emitter@nextrush/eventsevents
Build class-based controllers@nextrush/classclass
Inject dependencies (DI)@nextrush/class (re-exports @nextrush/di)class → di
Run on Bun, Deno, Edge, or serverless@nextrush/adapter-bun · -deno · -edge · -serverlessplatforms
Hot-reload dev server & build@nextrush/devdev

The full catalog with size budgets is in Packages A-Z.

Package Architecture

Loading diagram...

Quick Start

For most projects, install the meta package:

$ pnpm add nextrush

This gives you:

  • createApp() — Application factory
  • createRouter() — Router factory
  • listen() — Start Node.js server
  • HTTP error classes
  • Essential types
import { createApp, createRouter, listen } from 'nextrush';

const app = createApp();
const router = createRouter();

router.get('/', (ctx) => ctx.json({ hello: 'world' }));

app.route('/', router);
await listen(app, 8080);

Package Categories

Core Foundation

The foundational packages that everything else builds on.

PackagePurposeInstall Separately?
nextrushMeta package with all essentialsStart here
@nextrush/coreApplication, middleware compositionUsually via nextrush
@nextrush/routerSegment trie routingUsually via nextrush
@nextrush/typesTypeScript type definitionsRe-exported by nextrush; install directly for advanced package work
@nextrush/errorsHTTP error classesUsually via nextrush
@nextrush/runtimeRuntime detectionUsually via adapter
@nextrush/devDevelopment server & build toolsDev dependency

Platforms

Connect NextRush to your runtime environment.

PackageRuntimeNotes
@nextrush/adapter-nodeNode.jsIncluded in nextrush
@nextrush/adapter-bunBunInstall separately
@nextrush/adapter-denoDenoInstall separately
@nextrush/adapter-edgeEdge (Cloudflare, Vercel)Install separately
@nextrush/adapter-serverlessAWS Lambda and other event-driven platformsInstall separately

Middleware

Middleware packages for common HTTP concerns.

PackagePurpose
@nextrush/corsCross-Origin Resource Sharing
@nextrush/helmetSecurity headers
@nextrush/body-parserRequest body parsing
@nextrush/rate-limitRate limiting
@nextrush/compressionResponse compression
@nextrush/cookiesCookie handling
@nextrush/request-idRequest ID generation
@nextrush/timerResponse timing
@nextrush/form-dataMultipart form parsing
@nextrush/csrfCSRF protection
@nextrush/healthLiveness/readiness endpoints

Extensions & Plugins

Extend NextRush with additional capabilities.

PackagePurpose
@nextrush/loggerStructured logging
@nextrush/staticStatic file serving
@nextrush/websocketWebSocket support
@nextrush/eventsEvent emitter integration
@nextrush/templateTemplate engine integration

Class Runtime

For class-based applications with decorators, dependency injection, and modules.

PackagePurpose
@nextrush/classDecorators, controllers, modules, guards, interceptors, filters, and a re-export of @nextrush/di — the single import surface (nextrush/class)
@nextrush/diDependency injection container (used directly by @nextrush/class)

@nextrush/decorators and @nextrush/controllers were removed

Both were compatibility shims that re-exported from @nextrush/class — they no longer publish new versions. Import from nextrush/class directly — see @nextrush/class reference and Deprecations for the migration map and codemod.

$ pnpm add @nextrush/class

Choosing Packages

import { createApp, createRouter, listen } from 'nextrush';
import { cors } from '@nextrush/cors';
import { json } from '@nextrush/body-parser';

const app = createApp();
app.use(cors());
app.use(json());

const router = createRouter();
router.get('/users', (ctx) => ctx.json([]));

app.route('/', router);
await listen(app, 8080);

Install:

$ pnpm add nextrush @nextrush/cors @nextrush/body-parser

Class-Based Style (For Larger Apps)

import { createApp, listen } from 'nextrush';
import { registerControllers, Controller, Get, Service } from 'nextrush/class';

@Service()
class UserService {
  findAll() {
    return [{ id: 1, name: 'Alice' }];
  }
}

@Controller('/users')
class UserController {
  constructor(private users: UserService) {}

  @Get()
  findAll() {
    return this.users.findAll();
  }
}

const app = createApp();
await registerControllers(app, { root: './src', prefix: '/api' });
await listen(app, 8080);

Install:

$ pnpm add nextrush @nextrush/class

Non-Node.js Runtimes

For Bun, Deno, or Edge runtimes, install the specific adapter:

// Bun
import { createApp } from '@nextrush/core';
import { serve } from '@nextrush/adapter-bun';

const app = createApp();
serve(app, { port: 8080 });

Install:

$ pnpm add @nextrush/core @nextrush/router @nextrush/adapter-bun

Package Size Philosophy

NextRush follows a strict size budget:

CategoryMax LOCRationale
Core packages500-1,500Foundation must be minimal
Platforms~500Thin adapters, no bloat
Middleware~300Single responsibility
Extensions & Plugins~600Focused features

This ensures:

  • Fast installation
  • Quick cold starts
  • Low memory footprint
  • Transparent auditing

What's Next?

Was this helpful?

On this page