prestissimo (composer plugin)
composer parallel install plugin.
Depends
- composer
>=1.0.0-alpha10
(includes dev-master) - PHP
>=5.3
, (suggest>=5.5
, becausecurl_share_init
) - ext-curl
Install
$ composer global require hirak/prestissimo
Uninstall
$ composer global remove hirak/prestissimo
Benchmark Example
288s -> 26s
$ composer create-project laravel/laravel laravel1 --no-progress --profile --prefer-dist
Config (optional)
in local composer.json
or ~/.composer/config.json
{
...
"config": {
"prestissimo": {
"maxConnections": 6,
"minConnections": 3,
"pipeline": false,
"verbose": false,
"insecure": false,
"cainfo": "/absolute/path/to/cacert.pem",
"userAgent": "Your Awesome User Agent",
"privatePackages": [
"myorg/private1", "myorg/private2", ...
]
}
}
...
}
maxConnections (int)
- default: 6
Limit connections for parallel downloading.
minConnections (int)
- default: 3
If the number of packages is less than(<=
) minConnections
, prestissimo try to download by single connection.
pipeline (bool)
- default: false
HTTP/1.1 pipelining option. It needs PHP >=5.5
.
verbose (bool)
- default: false
CURLOPT_VERBOSE
option.
insecure (bool)
- default: false
If insecure is true, this plugin doesn't verify all https certs. (CURLOPT_SSL_VERIFYPEER
is off)
You SHOULD NOT change this option.
cainfo (string)
- default: "" (empty)
An absolute path to cacert.pem
userAgent (string)
- default: "" (empty)
User Agent for downloading. CURLOPT_USERAGENT
option.
If userAgent is empty, composer user agent is used.
privatePackages (string[])
- default: empty
If you list packages in this option, the local redirector(api.github.com -> codeload.github.com) will be off.
Composer authentication
It is also recommended to use composer's authentication as you may run into access errors otherwise due to request restriction for anonymous user for external services like github.
For github.com you can use an auth.json
with an oauth access token placed on your on the same level as your composer.json
:
{
"github-oauth": {
"github.com": "YOUR_GITHUB_ACCESS_TOKEN"
}
}
License
MIT License. See the LICENSE file.