SDK Generation
Type-safe SDKs are generated from OpenAPI and AsyncAPI specs.
Generation Flow
┌──────────────────────────────── ──────────────────────────────────┐
│ 1. Define routes with Zod schemas │
│ └── router({ "/users": procedure.output(UserSchema).get(...) })│
└───────────────────────────────┬──────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 2. Generate spec file │
│ └── generateOpenAPISpec({ api: router }) → openapi.json │
└───────────────────────────────┬──────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 3. Generate SDK from spec │
│ └── zod-openapi openapi.json -o src/index.ts │
└───────────────────────────────┬──────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 4. SDK exports Zod schemas + Request/Response types │
│ └── import { UserSchema, Request, Response } from "sdk" │