tRPC
Advanced Ecosystem 🟡 MidDéfinition
Bibliothèque qui expose des procédures TypeScript côté serveur et les rend appelables côté client avec des types inférés de bout en bout, sans schéma ni génération de code : une signature change, le client ne compile plus. tRPC v11, annoncée le 21 mars 2025, reste très compatible avec la v10 et ajoute le streaming de réponses (httpBatchStreamLink), les contenus non JSON (FormData, Blob, fichiers) et des fonctions serveur expérimentales. Pertinent quand front et back partagent un même monorepo TypeScript.
Analogie
Deux collègués qui parlent la même langue dans le même bureau n'ont pas besoin d'un traducteur assermenté (OpenAPI) : ils se comprennent à la virgule près.
Exemple de code
// server/router.ts
import { initTRPC } from '@trpc/server';
import { z } from 'zod';
const t = initTRPC.create();
export const appRouter = t.router({
userById: t.procedure
.input(z.object({ id: z.string() }))
.query(({ input }) => db.user.findUnique({ where: { id: input.id } })),
});
export type AppRouter = typeof appRouter;
// client.ts – aucun type dupliqué
const trpc = createTRPCClient<AppRouter>({ links: [httpBatchLink({ url: '/api/trpc' })] });
const user = await trpc.userById.query({ id: 'u_1' }); // user typé
Cas d'usage
Application full-stack TypeScript (Next.js, monorepo) où l'API n'est consommée que par vos propres fronts.
Anti-pattern
Termes liés
Fiche mise à jour le 2026-09-27