米Facebook、C++向けのHTTPライブラリ「Proxygen」を公開

 米Facebookは11月5日、C++向けのHTTPライブラリ「Proxygen」を発表した。サーバーやクライアント向けコードが含まれており、HTTPを利用したC++プログラムのやりとりを改善し、HTTPを利用するアプリケーションの構築を容易にするという。

 Proxygenは、HTTPライブラリとシンプルなWebサーバーを組み合わせたソフトウェアフレームワークで、Facebook社内においてHTTPサーバーやプロキシ、クライアントなどを構築する際に利用されている。Proxygenの公開の目的として、高性能なHTTPサービスの開発と実装を支援するとしている。サーバーとクライアントコードを含み、既存のアプリケーションと容易に統合できる高性能のHTTPフレームワークを目指しているという。

 Proxygenは2011年にスタートしたプロジェクトで、当初はカスタマイズ性の高い高性能なHTTPリバースプロキシ・ロードバランサーの開発を目指していた。プロキシ(Proxy)生成(Generate)のためのソフトウェアライブラリという意味で、Proxygenと名付けたとのことだ。その後、Webパフォーマンス関連の新機能を利用するためのフレームワークに進化したという。Facebookのほかのインフラサービスとの統合性も優れ、再利用可能なコードベースを利用して最新のWeb技術を利用できるという。ライセンスはBSDライセンス。

 中心となるHTTPレイヤーはセッション、コーデック、トランザクション、ハンドラの4つの抽出に分類され、ネットワークとデータの抽出はThriftとFollyに依存する。ThriftはFacebookが開発した言語間サービス開発のためのRPCフレームワークで、FollyはFacebookのC++ライブラリ。

 プロトコルはHTTP 1.1、SPDY 3/3.1をサポート、HTTP 2のサポートに向けても開発を進めているという。ProxygenはWebサーバーを含むが、ApacheやNginxなどのWebサーバーを置き換えるものではないという。

「Proxygen」
https://github.com/facebook/proxygen