PackagistJP

最終同期: 2024年11月21日 14:01:14 (JST) (2分毎に同期)

PHPのライブラリリポジトリであるhttps://packagist.orgのミラーサイトです。packagist.orgの代わりにこちらを参照することで、composer updateの応答速度が速くなります。特にフランスから遠い、アジア圏では顕著な効果が得られます。

有効にするには以下のコマンドを打ち込んでください。

enable

$ composer config -g repos.packagist composer https://packagist.jp

disable

$ composer config -g --unset repos.packagist

なお、このサイトではcomposer自体やpackagist.orgにあるパッケージ情報ページ、検索機能などはミラーしておりません。それぞれ本家サイトをご利用ください。

仕組み

composer updateを実行すると、composerはpackagist.orgからパッケージ情報が書かれたJSONファイルをダウンロードし、必要なパッケージやそれに依存するパッケージのJSONファイルを個別にダウンロードしていきます。パッケージの複雑さにもよりますが、update時にダウンロードするJSONファイルは数十から数百に達します。composerは現状全ファイルに対してTLSのコネクション確立からやり直すので、packagist.orgとcomposerを実行しているクライアントとの物理的な距離(RTT)が大きく影響します。

本サイトは日本のさくらVPSを使って配信しています。hirak/packagist-crawlerというスクリプトを使って、あらかじめpackagist.orgをクロールし、同期時点でのパッケージの情報が書かれた全JSONファイルをダウンロードしてあります。

配信は普通のnginxを使い、高負荷時の対策として手前にCDN(CloudFlare)を置いてあります。単にそれだけのサイトです。

このため、ミラーサイトを使った場合に高速化するのはcomposer update, composer require, composer removeなどメタファイルのやり取りが発生する場合だけになります。

Travis-CIなどでcomposer installする際は、github.comなどとのやり取りになっており、ミラーを有効にしたところで全く高速化されません。

免責事項

このサイトは @Hiraku が個人的に運営しています。スペック的には今の数万倍のアクセスが来ようが余裕で捌けますので自由に使っていただいて構いません。利用に際して料金等はかかりませんが、個人運営ですので、障害が起きても何ら保障は致しかねます。その点だけご了承ください。

packagist.jpはただのミラーサイトで、JSONの加工は行っていないので、何か不具合があれば上記disableコマンドで設定を外し、本家packagist.orgを参照するようにしてみてください。

使い方の疑問や要望など、答えられる範囲では答えますので、お尋ねください。

Copyright (C) 2014, Hiraku (hiraku at tojiru.net)