1. Что такое tRPC
tRPC — это библиотека для создания типобезопасных API с использованием механизма Remote Procedure Call (RPC). В отличие от REST и GraphQL, tRPC позволяет вызывать серверные функции с клиента так же, как если бы они были локальными — с полной поддержкой TypeScript-типов.
Проблема, которую решает tRPC
Заголовок раздела «Проблема, которую решает tRPC»В традиционных архитектурах существует постоянная проблема: типы данных на сервере и клиенте легко рассинхронизируются. Разработчик меняет тип ответа на сервере, забывает обновить типы на клиенте — и получает баг в production. tRPC устраняет этот класс ошибок полностью.
RPC против REST
Заголовок раздела «RPC против REST»REST API предполагает взаимодействие через HTTP-глаголы (GET, POST, PUT, DELETE) и URL-пути. Каждый вызов — это HTTP-запрос к определённому endpoint’у. RPC, напротив, абстрагирует транспортный уровень: вы просто вызываете функцию, не думая о HTTP-методах и путях.
tRPC против GraphQL
Заголовок раздела «tRPC против GraphQL»GraphQL решает схожие задачи, но требует: изучения языка SDL-схем, настройки резолверов, отдельного слоя для генерации TypeScript-типов (graphql-codegen), и сложного клиентского кода. tRPC предоставляет те же преимущества типобезопасности, используя только TypeScript — без DSL и codegen.
Когда использовать tRPC?
Заголовок раздела «Когда использовать tRPC?»tRPC оптимален для fullstack TypeScript-проектов, где фронтенд и бэкенд находятся в одном монорепозитории. Если вам нужен публичный API для сторонних клиентов — REST или GraphQL будут лучшим выбором. tRPC сияет в команде, где все пишут на TypeScript.