tRPC
Move fast and break nothing.
End-to-end typesafe APIs made easy.
The client above is not importing any code from the server, only its type declarations.
Note
You are looking at the next
-branch of tRPC which is the current work in progress representing version 11.
- The functionality is stable and can be used in production, but we may do small breaking API-changes between patches until we reach
11.0.0
- The packages are published with the
next
-tag on npm - For the list of changes made, see https://trpc.io/docs/v11/migrate-from-v10-to-v11
Intro
tRPC allows you to easily build & consume fully typesafe APIs without schemas or code generation.
Features
- ✅ Well-tested and production ready.
- 🧙♂️ Full static typesafety & autocompletion on the client, for inputs, outputs, and errors.
- 🐎 Snappy DX - No code generation, run-time bloat, or build pipeline.
- 🍃 Light - tRPC has zero deps and a tiny client-side footprint.
- 🐻 Easy to add to your existing brownfield project.
- 🔋 Batteries included - React.js/Next.js/Express.js/Fastify adapters. (But tRPC is not tied to React, and there are many community adapters for other libraries)
- 🥃 Subscriptions support.
- ⚡️ Request batching - requests made at the same time can be automatically combined into one
- 👀 Quite a few examples in the ./examples-folder
Quickstart
There are a few examples that you can use for playing out with tRPC or bootstrapping your new project. For example, if you want a Next.js app, you can use the full-stack Next.js example:
Quick start with a full-stack Next.js example:
# yarn
yarn create next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
# npm
npx create-next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
# pnpm
pnpm create next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
# bun
bunx create-next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
# deno
deno init --npm next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
👉 See full documentation on tRPC.io. 👈
Star History
Core Team
Do you want to contribute? First, read the Contributing Guidelines before opening an issue or PR so you understand the branching strategy and local development environment. If you need any more guidance or want to ask more questions, feel free to write to us on Discord!
Alex / KATT |
👋 Hi, I'm Alex and I am the creator of tRPC, don't hesitate to contact me on Twitter or email if you are curious about tRPC in any way. |
Project leads
The people who lead the API-design decisions and have the most active role in the development
Julius Marminge |
Alex / KATT |
Active contributors
People who actively help out improving the codebase by making PRs and reviewing code
Nick Lucas |
Ole Asteo |
Ahmed Elsakaan |
Special shout-outs
Individuals who have made exceptional contributions to tRPC through code, documentation, community building, and other valuable efforts
Theo Browne |
Sachin Raja |
Sponsors
If you enjoy working with tRPC and want to support us, consider giving a token appreciation by GitHub Sponsors!
🥇 Gold Sponsors
Retool |
🥈 Silver Sponsors
Cal.com, Inc. |
KeenEthics |
🥉 Bronze Sponsors
Dr. B |
Flylance |
Ryan Magoon |
😻 Smaller Backers
All contributors ✨