tRPCは、TypeScriptの力を活用して厳密なフルスタック型のバインディングを強制することにより、優れた開発者エクスペリエンスを提供します。APIコントラクトのずれやコード生成はありません。
2021年8月以来のメジャーバージョンリリース以来、tRPCコミュニティは大幅な成長を遂げています。
- 現在、GitHubで15,000以上のスターを獲得しています。
- 2,000人以上のメンバーを抱えるDiscordコミュニティ
- 毎週10万回以上のnpmダウンロード数
- 約200人のコントリビューター
- 拡張機能、例、コンテンツが成長するエコシステム
本日、tRPC v10をリリースします。 v10はすでに多くの大きなTypeScriptプロジェクトで本番環境で使用されており、大変嬉しく思っています。この公式リリースでは、より広範なコミュニティへの一般提供を発表します。
新しいプロジェクトでは、サンプルアプリケーションを使用してtRPC v10について学ぶことができます。すでにtRPC v9を使用していたプロジェクトについては、v10移行ガイドをご覧ください。
変更の概要
v10はtRPC史上最大のリリースです。これは、tRPCの構造に根本的な変更を加えた最初のことであり、最先端のアプリケーションに取り組んでいる急速に変化するチームにとって、新たな可能性が開かれると考えています。
開発者エクスペリエンスの向上
tRPC v10は、あなたのIDEを受け入れます。型を統一したいと考えていますが、このバージョンではフロントエンド、バックエンド、編集エクスペリエンスも統合しました。
v10を使用すると、
- 「定義へ移動」を使用して、フロントエンドのコンシューマーからバックエンドのプロシージャに直接ジャンプできます。
- 「シンボルの名前変更」を使用して、アプリケーション全体で入力引数またはプロシージャに新しい名前を付けることができます。
- 型の推論を容易にすることで、アプリケーションでtRPC型を手動で使用したい場合に役立ちます。
強力なバックエンドフレームワーク
v10では、バックエンドプロシージャの定義方法の構文を見直し、望ましいロジックを健全な方法で取り込むための機会をさらに増やしました。このバージョンのtRPCは、次の機能を備えています。
- 再利用可能なミドルウェアとコンテキスト拡張
- チェーン可能で再利用可能なプロシージャと複数の入力パーサーを使用する機能
- 柔軟なエラー処理とカスタムエラーフォーマット
- プロシージャメタデータにより、プロシージャに追加情報を付与できます。
大幅に改善されたTypeScriptのパフォーマンス
TypeScriptを使用すると、開発者は驚くべきことができますが、コストがかかることもあります。型を厳密に保つために使用する多くの技術は、TypeScriptコンパイラーに大きな負担をかけています。コミュニティからのフィードバックとして、tRPC v9を使用する大規模なアプリケーションでは、このコンパイラーの負荷の結果として、開発者のIDEのパフォーマンスが低下し始めていたことがわかりました。
あらゆる規模のアプリケーションの開発者エクスペリエンスを向上させることを目標としています。v10では、TypeScriptのパフォーマンス(特にTSインクリメンタルコンパイルによる)を劇的に改善したため、エディターは迅速に動作し続けます。
インクリメンタルな移行
また、v9ルーターとの(ほぼ)完全な後方互換性を可能にする`interop()`メソッドなど、移行エクスペリエンスを可能な限り簡単にするために多くの作業を行いました。移行ガイドで詳細情報をご覧ください。
コアチームのSachinは、移行の大部分を処理できるcodemodも作成しました。
成長するエコシステム
tRPCを中心とした豊富なサブライブラリセットが形成され続けています。いくつかの例を挙げます。
- trpc-openapiを使用して、REST互換のエンドポイントを簡単に作成できます。
- create-t3-appを使用して、tRPCを使用したフルスタックNext.jsアプリケーションをブートストラップできます。
- create-t3-turboを使用して、tRPCを使用した次のReact Nativeアプリをすぐに開始できます。
- trpc-chromeを使用して、tRPCを使用したChrome拡張機能を構築できます。
- Solid、Svelte、Vueなどのフレームワークのアダプター
その他のプラグイン、例、アダプターについては、Awesome tRPCコレクションをご覧ください。
ありがとうございました!
コアチームと私は、これはまだ始まりに過ぎないことをお伝えしたいです。React Server ComponentsとNext.js 13の実験にすでに取り組んでいます。
また、Sachin、Julius、James、Ahmed、Chris、Theo、Anthony、そしてこのリリースを可能にしたすべてのコントリビューターに心から感謝申し上げます。
tRPCをご利用いただき、ありがとうございます。
- Twitterで@trpcioをフォローしてください。
- 私たちのDiscordコミュニティに参加してください。
- ブラウザでtRPCを試してみてください。