name: orpc-docs description: "Use when working with oRPC (OpenAPI Remote Procedure Call): defining type-safe RPC procedures, routers, middleware, context, error handling, event iterators (streaming), file upload/download, contract-first design, OpenAPI spec generation, server adapters (Next.js, Hono, Express, Fastify, Nuxt, Astro, Elysia, H3, SvelteKit, Remix, TanStack Start, Solid Start, WebSocket, Electron, Web Workers), client-side usage (RPC link, OpenAPI link, dynamic link), plugins (CORS, batch requests, compression, retry, CSRF, rate limit), integrations (TanStack Query, AI SDK, Better Auth, Sentry, OpenTelemetry, Pinia Colada, SWR), or migrating from tRPC."
oRPC Documentation
Official oRPC docs (sourced from github.com/unnoq/orpc/apps/content/docs).
oRPC combines RPC with OpenAPI — type-safe procedures, OpenAPI spec generation, and framework adapters in one library.
CRITICAL: grep references/ for keywords before answering.
Topic Index
Core Concepts
getting-started.md— Installation, basic setupprocedure.md— Defining procedures (input/output schemas)router.md— Grouping procedures into routersmiddleware.md— Middleware chaincontext.md— Request contexterror-handling.md— Error handling patternsevent-iterator.md— Streaming with event iteratorsfile-upload-download.md— File upload/downloadmetadata.md— Procedure metadatarpc-handler.md— RPC handler setupserver-action.md— React Server Actions integration
Contract-First
contract-first/define-contract.md— Define contract schemacontract-first/implement-contract.md— Implement from contractcontract-first/router-to-contract.md— Extract contract from router
Client
client/client-side.md— Browser client setupclient/server-side.md— Server-to-server callsclient/rpc-link.md— RPC link (binary protocol)client/dynamic-link.md— Dynamic link routingclient/error-handling.md— Client error handlingclient/event-iterator.md— Client-side streaming
Server Adapters
adapters/next.md— Next.jsadapters/hono.md— Honoadapters/express.md— Expressadapters/fastify.md— Fastifyadapters/nuxt.md— Nuxtadapters/astro.md— Astroadapters/elysia.md— Elysiaadapters/h3.md— H3adapters/svelte-kit.md— SvelteKitadapters/remix.md— Remixadapters/tanstack-start.md— TanStack Startadapters/solid-start.md— Solid Startadapters/websocket.md— WebSocketadapters/electron.md— Electronadapters/browser.md— In-browseradapters/http.md— Raw HTTPadapters/web-workers.md— Web Workersadapters/worker-threads.md— Node Worker Threadsadapters/message-port.md— MessagePortadapters/react-native.md— React Native
OpenAPI
openapi/getting-started.md— OpenAPI setupopenapi/openapi-specification.md— Spec generationopenapi/openapi-handler.md— OpenAPI handleropenapi/routing.md— Route customizationopenapi/input-output-structure.md— Input/output mappingopenapi/scalar.md— Scalar API reference UIopenapi/client/openapi-link.md— OpenAPI client linkopenapi/error-handling.md— OpenAPI error format
Plugins
plugins/cors.md— CORSplugins/batch-requests.md— Request batchingplugins/compression.md— Response compressionplugins/client-retry.md— Client retryplugins/dedupe-requests.md— Request deduplicationplugins/simple-csrf-protection.md— CSRF protectionplugins/body-limit.md— Body size limitplugins/strict-get-method.md— Strict GET enforcementplugins/request-headers.md/response-headers.md— Header managementplugins/request-validation.md/response-validation.md— Validation
Integrations
integrations/tanstack-query.md— TanStack Query (React/Vue/Solid/Svelte)integrations/ai-sdk.md— Vercel AI SDKintegrations/better-auth.md— Better Authintegrations/sentry.md— Sentryintegrations/opentelemetry.md— OpenTelemetryintegrations/pinia-colada.md— Pinia Colada (Vue)integrations/react-swr.md— React SWRintegrations/pino.md— Pino logger
Other
comparison.md— oRPC vs tRPC vs ts-rest vs Honoecosystem.md— Ecosystem overviewplaygrounds.md— Live playgroundsmigrations/from-trpc.md— Migrating from tRPCbest-practices/— Monorepo setup, SSR optimization, dedupe middlewareadvanced/— Custom plugins, testing, SuperJSON, RPC protocolhelpers/— Utilities (cookie, encryption, ratelimit, signing, etc.)