Перейти к содержимому

1. Что такое tRPC

tRPC — это библиотека для создания типобезопасных API с использованием механизма Remote Procedure Call (RPC). В отличие от REST и GraphQL, tRPC позволяет вызывать серверные функции с клиента так же, как если бы они были локальными — с полной поддержкой TypeScript-типов.

В традиционных архитектурах существует постоянная проблема: типы данных на сервере и клиенте легко рассинхронизируются. Разработчик меняет тип ответа на сервере, забывает обновить типы на клиенте — и получает баг в production. tRPC устраняет этот класс ошибок полностью.

REST API предполагает взаимодействие через HTTP-глаголы (GET, POST, PUT, DELETE) и URL-пути. Каждый вызов — это HTTP-запрос к определённому endpoint’у. RPC, напротив, абстрагирует транспортный уровень: вы просто вызываете функцию, не думая о HTTP-методах и путях.

GraphQL решает схожие задачи, но требует: изучения языка SDL-схем, настройки резолверов, отдельного слоя для генерации TypeScript-типов (graphql-codegen), и сложного клиентского кода. tRPC предоставляет те же преимущества типобезопасности, используя только TypeScript — без DSL и codegen.

tRPC оптимален для fullstack TypeScript-проектов, где фронтенд и бэкенд находятся в одном монорепозитории. Если вам нужен публичный API для сторонних клиентов — REST или GraphQL будут лучшим выбором. tRPC сияет в команде, где все пишут на TypeScript.