End-to-end typesafe APIs built quicker & easier
Note
This project is still in heavy development, please be mindful of breaking changes.
oRPC is a powerful combination of RPC and OpenAPI, offering an exceptional developer experience powered by TypeScript. It's designed to be simple and straightforward to use.
- Type-safe π: oRPC is built on top of TypeScript, which means you get full type safety out of the box.
- Easy to use βοΈ: oRPC is designed to be simple and straightforward to use.
- Contract first π: Take advantage of a "contract first" approach to developing your API.
- Built-in plugins π: Easily implement into your favourite frameworks.
You can find the full documentation & examples here.
@orpc/contract: Build your API contract.@orpc/server: Build your API or implement API contract.@orpc/client: Consume your API on the client with type-safety.@orpc/react-query: Integration with React Query.@orpc/vue-query: Integration with Vue Query.@orpc/vue-colada: Integration with Pinia Colada.@orpc/openapi: Generate OpenAPI specs and provide OpenAPI handler for@orpc/server.@orpc/next: Helpers and hooks for Next.JS.@orpc/zod: More schemas that Zod doesn't support yet.
This comparison table helps you understand how oRPC differs from other popular TypeScript RPC and REST solutions.
- β First-class, built-in support.
- π‘ Lacks features, or requires third-party integrations.
- π Not supported or not documented.
| Feature | oRPC | tRPC | ts-rest | Description |
|---|---|---|---|---|
| End-to-end Type Safety | β | β | β | Full TypeScript type inference from backend to frontend. |
| End-to-end Type Error | β | π | β | Full TYpeScript type inference for Error from backend to frontend. |
| React Query Integration | β | β | π‘ | Native support for React Query/TanStack Query. |
| Vue Query Integration | β | π | π‘ | Native support for Vue Query/TanStack Query. |
| Pinia Colada Integration | β | π | π | Native support for VPinia Colada. |
| With Contract-First | β | π | β | API definitions before implementation. |
| Without Contract-First | β | β | π | API definitions and implementation are combined in same place |
| File Operations | β | π‘ | π‘ | Built-in support for file uploads/downloads. |
| OpenAPI Support | β | π‘ | π‘ | Generation and consumption of OpenAPI specs. |
| Server Actions Support | β | β | π | React/Next.js Actions compatibility. |
| WebSockets/SSE Support | π | β | π | WebSockets/SSE support. |
| Nest.js integration | π | π‘ | β | Integration with Nest.js. |
oRPC is inspired by existing solutions that prioritize type safety and developer experience. Special acknowledgments to:
- tRPC: For pioneering the concept of end-to-end type-safe RPC and influencing the development of type-safe APIs.
- ts-rest: For its emphasis on contract-first development and OpenAPI integration, which have greatly inspired oRPCβs feature set.
Distributed under the MIT License. See LICENSE for more information.
