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.