Skip to content

Vafast Middleware Overview ​

Official Vafast plugins are installed as needed. Most are server.use(...) middleware; a few are utility libraries (see the description column).

Official Plugins ​

NameDescriptionInstall
Auth MiddlewareJWT / API key / app hard auth against an auth-servernpm i @vafast/auth-middleware
BearerExtract the Bearer token (no signature verification)npm i @vafast/bearer
CompressBrotli / gzip / deflate response compressionnpm i @vafast/compress
CookieCookie parsing, signing and Set-Cookienpm i @vafast/cookie
CORSCross-origin resource sharingnpm i @vafast/cors
CronScheduled jobs (not HTTP middleware)npm i @vafast/cron
HelmetSecurity-related response headersnpm i @vafast/helmet
HTMLHTML / JSX response helpersnpm i @vafast/html
IPClient IP extractionnpm i @vafast/ip
JWTJWT signing / verification utilitiesnpm i @vafast/jwt
LoggerPino logger factory (not request middleware)npm i @vafast/logger
OpenTelemetryDistributed tracingnpm i @vafast/opentelemetry
PermissionDeclarative permissions / RBAC (pluggable resolver)npm i @vafast/permission
Rate LimitRate limitingnpm i @vafast/rate-limit
Request IDRequest ID generation and propagationnpm i @vafast/request-id
Request LoggerHTTP access log middlewarenpm i @vafast/request-logger
Server TimingServer-Timing performance headernpm i @vafast/server-timing
StaticStatic file routesnpm i @vafast/static
SwaggerOpenAPI UI (hand-written spec)npm i @vafast/swagger
WebhookDeclarative webhook dispatchnpm i @vafast/webhook
API ClientType-safe API clientnpm i @vafast/api-client

Quick Example ​

typescript
import { Server, defineRoute, defineRoutes, serve } from 'vafast'
import { cors } from '@vafast/cors'
import { requestId } from '@vafast/request-id'

const routes = defineRoutes([
  defineRoute({
    method: 'GET',
    path: '/',
    handler: () => ({ ok: true }),
  }),
])

const server = new Server(routes)
server.use(cors())
server.use(requestId())

serve({ fetch: server.fetch, port: 3000 })