Zero‑friction codegen for Drizzle ORM. Analyze your schema. Generate validation, services, and routers — fast.
- Analyzer: turns Drizzle schemas into a normalized analysis model
- Generators: Zod, Valibot, ArkType validation; typed CRUD services; router templates (oRPC)
- Batteries: formatting, naming, reusable/shared schemas, relation support
- Monorepo: pnpm workspace, lockstep releases with Changesets
- Install the CLI and init a config
pnpm add @drzl/cli -D
pnpm drzl init
- Generate code
pnpm drzl generate -c drzl.config.ts
Minimal config
// drzl.config.ts
import { defineConfig } from '@drzl/cli/config';
export default defineConfig({
schema: 'src/db/schemas/index.ts',
outDir: 'src/api',
generators: [
{ kind: 'zod', path: 'src/validators/zod' },
{ kind: 'service', path: 'src/services', dataAccess: 'drizzle' },
{ kind: 'orpc', template: '@drzl/template-orpc-service' },
],
});
Runtime
- ESM / ES2021 output
- Node ≥ 18.17 (tested on Node 20+)
packages/analyzer
— schema analysispackages/cli
— CLI (drzl
)packages/generator-orpc
— oRPC router generatorpackages/generator-service
— typed service generatorpackages/generator-zod
— Zod generatorpackages/generator-valibot
— Valibot generatorpackages/generator-arktype
— ArkType generatorpackages/validation-core
— shared validation utilitiespackages/template-orpc-service
— oRPC router template (service‑backed)packages/template-standard
— minimal oRPC router template
See each package’s README for details.
- Install:
pnpm install
- Build:
pnpm -r run build
- Test:
pnpm -r test
- Lint:
pnpm lint
VitePress site lives in docs/
(kept out of releases). Local dev:
pnpm -C docs dev
Contributions welcome — see CONTRIBUTING.md.
Apache-2.0