[この記事は 2015 年 2 月 26 日に Mugur Marculescu、Product Manager が Google Developers Blog に投稿した記事 "Introducing gRPC, a new open source HTTP/2 RPC Framework" を元に、山口が翻訳・加筆したものです。詳しくは元記事をご覧ください。]

Google は本日( 2 月 26 日)、リモート プロシージャ コール処理の新しいフレームワークである gRPC をオープンソース化します。このフレームワークは BSD ライセンスで、最近承認された HTTP/2 標準に基づき、一般的なプログラミング言語やプラットフォームにおける効率的で拡張性豊かな API やマイクロサービスの作成をサポートしています。Google では、長期的な HTTP/2 に対するコミットメントの一つの現れとして gRPC の使用を既に開始しており、gRPC エンドポイントを通じて数多くの正式なサービスを公開しています。

ここ数年、Google は基盤システムやテクノロジーの開発を通じて世界中のマイクロサービスに対する巨大なエコシステムを支えてきました。Google の各国データセンターのサーバーでは毎秒数百億ものコールが処理されています。この規模ではナノセカンド(10 億分の 1 秒)が重要になり、効率性、拡張性、信頼性が Google の API を構築するうえでの鍵になります。

gRPC は、分散システム構築における Google の長年の経験を元に開発されています。Google はこのフレームワークを通じて、デベロッパーの皆さんに高い処理能力と CPU 効率を備えた遅延の少ない最新の手法を提供したいと考えています。gRPC を使えばデータセンター広範にわたり、またモバイルアプリ、リアルタイム通信、インターネット接続されたあらゆる端末、API などにおいても大規模分散システムを築くことができます。

HTTP/2 標準を基盤とすることで、双方向ストリーミングやフロー制御、ヘッダー圧縮、TCP 接続 1 つに対する多重リクエスト、など多くのことが可能になります。こうした機能を使うことで、モバイル端末で使用されるデータ量を低減してバッテリーの寿命を長持ちさせ、クラウドで実行されるサービスやウェブ アプリケーションの動作を軽快にすることができます。

デベロッパーにとっては、よりレスポンシブでリアルタイム性を備えたアプリを作成できるようになり、適応性やウェブ通信の効率を向上させることができます。この機能の詳細については、FAQ をご覧ください。

gRPC と同時に、Protocol Buffers (プロトコル バッファー)の新しいバージョンもリリースします。これはパフォーマンスに優れたオープン ソースのバイナリ シリアライズ プロトコルで、サービスの定義やクライアント ライブラリの自動生成を容易に行うことができます。新しい機能が追加された Proto 3 は以前のバージョンより簡単に使用でき、サポートする言語が増えたほか Proto から JSON への標準マッピングを備えています。

プロジェクトは C、C++、Java、Go、Node.js、Python、Ruby に対応しており、Objective-C、PHP、C# のライブラリを現在開発しています。すぐにでも GitHub リポジトリ からフォークして、プル リクエストの送信を開始できます。また、ドキュメントもご確認ください。メーリング リストFreenode の IRC #grpc チャンネル も是非ご覧ください。StackOverflow“grpc” タグの質問もご確認いただけます。

Google は gRPC プロジェクトにおいて、Square やその他の企業、団体と協力しています。このテクノロジーがウェブをさらに進歩させていくことを、また皆さんからのご協力やご意見、ご尽力によってプロジェクトがさらに発展していくことを楽しみにしています。

Posted by Yoshifumi Yamaguchi - Developer Relations Team