※ 現在はメンテナンスが事実上凍結されている
mpyw/co: Asynchronous cURL executor simply based on resource and Generator. https://github.com/mpyw/co
PHP の cURL リクエストを平行実行する関数は,非常に使い勝手が悪い。「全部リクエストを送ってすべて終わるまで待つ」という処理は簡単に書けても,「N個までの並行リクエストを許可し,完了したら次のリクエストをプールに投入して続行,さらにその間に他の処理も行う」というコードはなかなか書けない。
PHPにおけるI/O多重化 というテーマで過去に Hiraku さんが実装方針の提案と試験的な実装をされていたが,汎用性や完成度の点から満足できなかったため,ここでライブラリの自作を開始。現在となっては Guzzle が主流だが,当時の自分は生 cURL を使ったコードをメインに書いていたため,どうしてもこれが欲しかった。
完成後は更に,これをベースとして他の自分のライブラリを作った。