Created
January 5, 2021 02:15
-
-
Save uzulla/fdb0d4312cb90a999f8424f128477b29 to your computer and use it in GitHub Desktop.
some amphp bench code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "require": { | |
| "amphp/amp": "^2.5", | |
| "amphp/dns": "^1.2", | |
| "amphp/http-client": "^4.5" | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "_readme": [ | |
| "This file locks the dependencies of your project to a known state", | |
| "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", | |
| "This file is @generated automatically" | |
| ], | |
| "content-hash": "159f9881c36c38c61c453c904e99ab56", | |
| "packages": [ | |
| { | |
| "name": "amphp/amp", | |
| "version": "v2.5.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/amp.git", | |
| "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/amp/zipball/f220a51458bf4dd0dedebb171ac3457813c72bbc", | |
| "reference": "f220a51458bf4dd0dedebb171ac3457813c72bbc", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "php": ">=7" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1", | |
| "ext-json": "*", | |
| "jetbrains/phpstorm-stubs": "^2019.3", | |
| "phpunit/phpunit": "^6.0.9 | ^7", | |
| "psalm/phar": "^3.11@dev", | |
| "react/promise": "^2" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "2.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\": "lib" | |
| }, | |
| "files": [ | |
| "lib/functions.php", | |
| "lib/Internal/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Daniel Lowrey", | |
| "email": "rdlowrey@php.net" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| }, | |
| { | |
| "name": "Bob Weinand", | |
| "email": "bobwei9@hotmail.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "A non-blocking concurrency framework for PHP applications.", | |
| "homepage": "http://amphp.org/amp", | |
| "keywords": [ | |
| "async", | |
| "asynchronous", | |
| "awaitable", | |
| "concurrency", | |
| "event", | |
| "event-loop", | |
| "future", | |
| "non-blocking", | |
| "promise" | |
| ], | |
| "funding": [ | |
| { | |
| "url": "https://github.com/amphp", | |
| "type": "github" | |
| } | |
| ], | |
| "time": "2020-07-14T21:47:18+00:00" | |
| }, | |
| { | |
| "name": "amphp/byte-stream", | |
| "version": "v1.8.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/byte-stream.git", | |
| "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", | |
| "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2", | |
| "php": ">=7.1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1.4", | |
| "friendsofphp/php-cs-fixer": "^2.3", | |
| "jetbrains/phpstorm-stubs": "^2019.3", | |
| "phpunit/phpunit": "^6 || ^7 || ^8", | |
| "psalm/phar": "^3.11.4" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "1.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\ByteStream\\": "lib" | |
| }, | |
| "files": [ | |
| "lib/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "A stream abstraction to make working with non-blocking I/O simple.", | |
| "homepage": "http://amphp.org/byte-stream", | |
| "keywords": [ | |
| "amp", | |
| "amphp", | |
| "async", | |
| "io", | |
| "non-blocking", | |
| "stream" | |
| ], | |
| "time": "2020-06-29T18:35:05+00:00" | |
| }, | |
| { | |
| "name": "amphp/cache", | |
| "version": "v1.4.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/cache.git", | |
| "reference": "e7bccc526fc2a555d59e6ee8380eeb39a95c0835" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/cache/zipball/e7bccc526fc2a555d59e6ee8380eeb39a95c0835", | |
| "reference": "e7bccc526fc2a555d59e6ee8380eeb39a95c0835", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2", | |
| "amphp/serialization": "^1", | |
| "amphp/sync": "^1.2", | |
| "php": ">=7.1" | |
| }, | |
| "conflict": { | |
| "amphp/file": "<0.2 || >=2" | |
| }, | |
| "require-dev": { | |
| "amphp/file": "^1", | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1.1", | |
| "phpunit/phpunit": "^6 | ^7 | ^8 | ^9", | |
| "vimeo/psalm": "^3.11@dev" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Cache\\": "lib" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| }, | |
| { | |
| "name": "Daniel Lowrey", | |
| "email": "rdlowrey@php.net" | |
| } | |
| ], | |
| "description": "A promise-aware caching API for Amp.", | |
| "homepage": "https://github.com/amphp/cache", | |
| "time": "2020-04-19T16:10:08+00:00" | |
| }, | |
| { | |
| "name": "amphp/dns", | |
| "version": "v1.2.3", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/dns.git", | |
| "reference": "852292532294d7972c729a96b49756d781f7c59d" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/dns/zipball/852292532294d7972c729a96b49756d781f7c59d", | |
| "reference": "852292532294d7972c729a96b49756d781f7c59d", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2", | |
| "amphp/byte-stream": "^1.1", | |
| "amphp/cache": "^1.2", | |
| "amphp/parser": "^1", | |
| "amphp/windows-registry": "^0.3", | |
| "daverandom/libdns": "^2.0.1", | |
| "ext-filter": "*", | |
| "ext-json": "*", | |
| "php": ">=7.0" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1", | |
| "phpunit/phpunit": "^6 || ^7 || ^8 || ^9" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Dns\\": "lib" | |
| }, | |
| "files": [ | |
| "lib/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Chris Wright", | |
| "email": "addr@daverandom.com" | |
| }, | |
| { | |
| "name": "Daniel Lowrey", | |
| "email": "rdlowrey@php.net" | |
| }, | |
| { | |
| "name": "Bob Weinand", | |
| "email": "bobwei9@hotmail.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| } | |
| ], | |
| "description": "Async DNS resolution for Amp.", | |
| "homepage": "https://github.com/amphp/dns", | |
| "keywords": [ | |
| "amp", | |
| "amphp", | |
| "async", | |
| "client", | |
| "dns", | |
| "resolve" | |
| ], | |
| "funding": [ | |
| { | |
| "url": "https://github.com/amphp", | |
| "type": "github" | |
| } | |
| ], | |
| "time": "2020-07-21T19:04:57+00:00" | |
| }, | |
| { | |
| "name": "amphp/hpack", | |
| "version": "v3.1.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/hpack.git", | |
| "reference": "0dcd35f9a8d9fc04d5fb8af0aeb109d4474cfad8" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/hpack/zipball/0dcd35f9a8d9fc04d5fb8af0aeb109d4474cfad8", | |
| "reference": "0dcd35f9a8d9fc04d5fb8af0aeb109d4474cfad8", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "php": ">=7.1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "http2jp/hpack-test-case": "^1", | |
| "phpunit/phpunit": "^6 | ^7" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Http\\": "src" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Daniel Lowrey", | |
| "email": "rdlowrey@php.net" | |
| }, | |
| { | |
| "name": "Bob Weinand" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| } | |
| ], | |
| "description": "HTTP/2 HPack implementation.", | |
| "homepage": "https://github.com/amphp/hpack", | |
| "keywords": [ | |
| "headers", | |
| "hpack", | |
| "http-2" | |
| ], | |
| "time": "2020-01-11T19:33:14+00:00" | |
| }, | |
| { | |
| "name": "amphp/http", | |
| "version": "v1.6.1", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/http.git", | |
| "reference": "dfd33554b82a7d8f18cced56352bcc8270318dfe" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/http/zipball/dfd33554b82a7d8f18cced56352bcc8270318dfe", | |
| "reference": "dfd33554b82a7d8f18cced56352bcc8270318dfe", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/hpack": "^3", | |
| "php": ">=7.1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "phpunit/phpunit": "^7 || ^6.5" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "1.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Http\\": "src" | |
| }, | |
| "files": [ | |
| "src/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "Basic HTTP primitives which can be shared by servers and clients.", | |
| "funding": [ | |
| { | |
| "url": "https://github.com/amphp", | |
| "type": "github" | |
| } | |
| ], | |
| "time": "2020-09-11T18:23:42+00:00" | |
| }, | |
| { | |
| "name": "amphp/http-client", | |
| "version": "v4.5.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/http-client.git", | |
| "reference": "39099a5ad69379eb90f2ca83c082b276539328b9" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/http-client/zipball/39099a5ad69379eb90f2ca83c082b276539328b9", | |
| "reference": "39099a5ad69379eb90f2ca83c082b276539328b9", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2.4", | |
| "amphp/byte-stream": "^1.6", | |
| "amphp/hpack": "^3", | |
| "amphp/http": "^1.6", | |
| "amphp/socket": "^1", | |
| "amphp/sync": "^1.3", | |
| "league/uri": "^6", | |
| "php": ">=7.2", | |
| "psr/http-message": "^1" | |
| }, | |
| "conflict": { | |
| "amphp/file": "<0.2" | |
| }, | |
| "require-dev": { | |
| "amphp/file": "^1 || ^0.3 || ^0.2", | |
| "amphp/http-server": "^2", | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1.1", | |
| "amphp/react-adapter": "^2.1", | |
| "clue/socks-react": "^1.0", | |
| "ext-json": "*", | |
| "kelunik/link-header-rfc5988": "^1.0", | |
| "laminas/laminas-diactoros": "^2.3", | |
| "phpunit/phpunit": "^7 || ^8 || ^9", | |
| "vimeo/psalm": "^3.9@dev" | |
| }, | |
| "suggest": { | |
| "amphp/file": "Required for file request bodies and HTTP archive logging", | |
| "ext-json": "Required for logging HTTP archives", | |
| "ext-zlib": "Allows using compression for response bodies." | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "4.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Http\\Client\\": "src" | |
| }, | |
| "files": [ | |
| "src/Internal/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Daniel Lowrey", | |
| "email": "rdlowrey@gmail.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| } | |
| ], | |
| "description": "Asynchronous concurrent HTTP/2 and HTTP/1.1 client built on the Amp concurrency framework", | |
| "homepage": "https://github.com/amphp/http-client", | |
| "keywords": [ | |
| "async", | |
| "client", | |
| "concurrent", | |
| "http", | |
| "non-blocking", | |
| "rest" | |
| ], | |
| "funding": [ | |
| { | |
| "url": "https://github.com/amphp", | |
| "type": "github" | |
| } | |
| ], | |
| "time": "2020-07-21T19:18:31+00:00" | |
| }, | |
| { | |
| "name": "amphp/parser", | |
| "version": "v1.0.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/parser.git", | |
| "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/parser/zipball/f83e68f03d5b8e8e0365b8792985a7f341c57ae1", | |
| "reference": "f83e68f03d5b8e8e0365b8792985a7f341c57ae1", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "php": ">=7" | |
| }, | |
| "require-dev": { | |
| "friendsofphp/php-cs-fixer": "^2.3", | |
| "phpunit/phpunit": "^6" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Parser\\": "lib" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| } | |
| ], | |
| "description": "A generator parser to make streaming parsers simple.", | |
| "homepage": "https://github.com/amphp/parser", | |
| "keywords": [ | |
| "async", | |
| "non-blocking", | |
| "parser", | |
| "stream" | |
| ], | |
| "time": "2017-06-06T05:29:10+00:00" | |
| }, | |
| { | |
| "name": "amphp/process", | |
| "version": "v1.1.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/process.git", | |
| "reference": "355b1e561b01c16ab3d78fada1ad47ccc96df70e" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/process/zipball/355b1e561b01c16ab3d78fada1ad47ccc96df70e", | |
| "reference": "355b1e561b01c16ab3d78fada1ad47ccc96df70e", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2", | |
| "amphp/byte-stream": "^1.4", | |
| "php": ">=7" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1", | |
| "phpunit/phpunit": "^6" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Process\\": "lib" | |
| }, | |
| "files": [ | |
| "lib/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Bob Weinand", | |
| "email": "bobwei9@hotmail.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| } | |
| ], | |
| "description": "Asynchronous process manager.", | |
| "homepage": "https://github.com/amphp/process", | |
| "time": "2019-02-26T16:33:03+00:00" | |
| }, | |
| { | |
| "name": "amphp/serialization", | |
| "version": "v1.0.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/serialization.git", | |
| "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/serialization/zipball/693e77b2fb0b266c3c7d622317f881de44ae94a1", | |
| "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "php": ">=7.1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "phpunit/phpunit": "^9 || ^8 || ^7" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Serialization\\": "src" | |
| }, | |
| "files": [ | |
| "src/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "Serialization tools for IPC and data storage in PHP.", | |
| "homepage": "https://github.com/amphp/serialization", | |
| "keywords": [ | |
| "async", | |
| "asynchronous", | |
| "serialization", | |
| "serialize" | |
| ], | |
| "time": "2020-03-25T21:39:07+00:00" | |
| }, | |
| { | |
| "name": "amphp/socket", | |
| "version": "v1.1.3", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/socket.git", | |
| "reference": "b9064b98742d12f8f438eaf73369bdd7d8446331" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/socket/zipball/b9064b98742d12f8f438eaf73369bdd7d8446331", | |
| "reference": "b9064b98742d12f8f438eaf73369bdd7d8446331", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2", | |
| "amphp/byte-stream": "^1.6", | |
| "amphp/dns": "^1 || ^0.9", | |
| "ext-openssl": "*", | |
| "kelunik/certificate": "^1.1", | |
| "league/uri-parser": "^1.4", | |
| "php": ">=7.1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1", | |
| "phpunit/phpunit": "^6 || ^7 || ^8", | |
| "vimeo/psalm": "^3.9@dev" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "1.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Socket\\": "src" | |
| }, | |
| "files": [ | |
| "src/functions.php", | |
| "src/Internal/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Daniel Lowrey", | |
| "email": "rdlowrey@gmail.com" | |
| }, | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| }, | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "Async socket connection / server tools for Amp.", | |
| "homepage": "https://github.com/amphp/socket", | |
| "keywords": [ | |
| "amp", | |
| "async", | |
| "encryption", | |
| "non-blocking", | |
| "sockets", | |
| "tcp", | |
| "tls" | |
| ], | |
| "time": "2020-06-25T18:55:28+00:00" | |
| }, | |
| { | |
| "name": "amphp/sync", | |
| "version": "v1.4.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/sync.git", | |
| "reference": "613047ac54c025aa800a9cde5b05c3add7327ed4" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/sync/zipball/613047ac54c025aa800a9cde5b05c3add7327ed4", | |
| "reference": "613047ac54c025aa800a9cde5b05c3add7327ed4", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2.2", | |
| "php": ">=7.1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master", | |
| "amphp/phpunit-util": "^1.1", | |
| "phpunit/phpunit": "^9 || ^8 || ^7" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\Sync\\": "src" | |
| }, | |
| "files": [ | |
| "src/functions.php", | |
| "src/ConcurrentIterator/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Aaron Piotrowski", | |
| "email": "aaron@trowski.com" | |
| }, | |
| { | |
| "name": "Stephen Coakley", | |
| "email": "me@stephencoakley.com" | |
| } | |
| ], | |
| "description": "Mutex, Semaphore, and other synchronization tools for Amp.", | |
| "homepage": "https://github.com/amphp/sync", | |
| "keywords": [ | |
| "async", | |
| "asynchronous", | |
| "mutex", | |
| "semaphore", | |
| "synchronization" | |
| ], | |
| "time": "2020-05-07T18:57:50+00:00" | |
| }, | |
| { | |
| "name": "amphp/windows-registry", | |
| "version": "v0.3.3", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/amphp/windows-registry.git", | |
| "reference": "0f56438b9197e224325e88f305346f0221df1f71" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/amphp/windows-registry/zipball/0f56438b9197e224325e88f305346f0221df1f71", | |
| "reference": "0f56438b9197e224325e88f305346f0221df1f71", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "amphp/amp": "^2", | |
| "amphp/byte-stream": "^1.4", | |
| "amphp/process": "^1" | |
| }, | |
| "require-dev": { | |
| "amphp/php-cs-fixer-config": "dev-master" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Amp\\WindowsRegistry\\": "lib" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "Windows Registry Reader.", | |
| "funding": [ | |
| { | |
| "url": "https://github.com/amphp", | |
| "type": "github" | |
| } | |
| ], | |
| "time": "2020-07-10T16:13:29+00:00" | |
| }, | |
| { | |
| "name": "daverandom/libdns", | |
| "version": "v2.0.2", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/DaveRandom/LibDNS.git", | |
| "reference": "e8b6d6593d18ac3a6a14666d8a68a4703b2e05f9" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/e8b6d6593d18ac3a6a14666d8a68a4703b2e05f9", | |
| "reference": "e8b6d6593d18ac3a6a14666d8a68a4703b2e05f9", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "ext-ctype": "*", | |
| "php": ">=7.0" | |
| }, | |
| "suggest": { | |
| "ext-intl": "Required for IDN support" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "LibDNS\\": "src/" | |
| }, | |
| "files": [ | |
| "src/functions.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "description": "DNS protocol implementation written in pure PHP", | |
| "keywords": [ | |
| "dns" | |
| ], | |
| "time": "2019-12-03T09:12:46+00:00" | |
| }, | |
| { | |
| "name": "kelunik/certificate", | |
| "version": "v1.1.2", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/kelunik/certificate.git", | |
| "reference": "56542e62d51533d04d0a9713261fea546bff80f6" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/kelunik/certificate/zipball/56542e62d51533d04d0a9713261fea546bff80f6", | |
| "reference": "56542e62d51533d04d0a9713261fea546bff80f6", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "ext-openssl": "*", | |
| "php": ">=5.4" | |
| }, | |
| "require-dev": { | |
| "fabpot/php-cs-fixer": "^1.9", | |
| "phpunit/phpunit": "^4.8" | |
| }, | |
| "type": "library", | |
| "autoload": { | |
| "psr-4": { | |
| "Kelunik\\Certificate\\": "lib" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Niklas Keller", | |
| "email": "me@kelunik.com" | |
| } | |
| ], | |
| "description": "Access certificate details and transform between different formats.", | |
| "keywords": [ | |
| "DER", | |
| "certificate", | |
| "certificates", | |
| "openssl", | |
| "pem", | |
| "x509" | |
| ], | |
| "time": "2019-05-29T19:02:31+00:00" | |
| }, | |
| { | |
| "name": "league/uri", | |
| "version": "6.3.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/thephpleague/uri.git", | |
| "reference": "aa3babf16e9d7535544bd94e3def026ac56640f3" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/thephpleague/uri/zipball/aa3babf16e9d7535544bd94e3def026ac56640f3", | |
| "reference": "aa3babf16e9d7535544bd94e3def026ac56640f3", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "ext-json": "*", | |
| "league/uri-interfaces": "^2.1", | |
| "php": ">=7.2", | |
| "psr/http-message": "^1.0" | |
| }, | |
| "conflict": { | |
| "league/uri-schemes": "^1.0" | |
| }, | |
| "require-dev": { | |
| "friendsofphp/php-cs-fixer": "^2.16", | |
| "phpstan/phpstan": "^0.12", | |
| "phpstan/phpstan-phpunit": "^0.12", | |
| "phpstan/phpstan-strict-rules": "^0.12", | |
| "phpunit/phpunit": "^8.0" | |
| }, | |
| "suggest": { | |
| "ext-fileinfo": "Needed to create Data URI from a filepath", | |
| "ext-intl": "Needed to improve host validation", | |
| "league/uri-components": "Needed to easily manipulate URI objects" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "6.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "League\\Uri\\": "src" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Ignace Nyamagana Butera", | |
| "email": "nyamsprod@gmail.com", | |
| "homepage": "https://nyamsprod.com" | |
| } | |
| ], | |
| "description": "URI manipulation library", | |
| "homepage": "http://uri.thephpleague.com", | |
| "keywords": [ | |
| "data-uri", | |
| "file-uri", | |
| "ftp", | |
| "hostname", | |
| "http", | |
| "https", | |
| "middleware", | |
| "parse_str", | |
| "parse_url", | |
| "psr-7", | |
| "query-string", | |
| "querystring", | |
| "rfc3986", | |
| "rfc3987", | |
| "rfc6570", | |
| "uri", | |
| "uri-template", | |
| "url", | |
| "ws" | |
| ], | |
| "funding": [ | |
| { | |
| "url": "https://github.com/sponsors/nyamsprod", | |
| "type": "github" | |
| } | |
| ], | |
| "time": "2020-08-13T17:18:44+00:00" | |
| }, | |
| { | |
| "name": "league/uri-interfaces", | |
| "version": "2.1.0", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/thephpleague/uri-interfaces.git", | |
| "reference": "0068a469958895ceaf3afcb489c0258adfa1e406" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/0068a469958895ceaf3afcb489c0258adfa1e406", | |
| "reference": "0068a469958895ceaf3afcb489c0258adfa1e406", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "ext-json": "*", | |
| "php": "^7.1" | |
| }, | |
| "require-dev": { | |
| "friendsofphp/php-cs-fixer": "^2.0", | |
| "phpstan/phpstan": "^0.12", | |
| "phpstan/phpstan-phpunit": "^0.12", | |
| "phpstan/phpstan-strict-rules": "^0.12", | |
| "phpunit/phpunit": "^7.0|^8.0" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "2.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "League\\Uri\\": "src/" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Ignace Nyamagana Butera", | |
| "email": "nyamsprod@gmail.com", | |
| "homepage": "https://nyamsprod.com" | |
| } | |
| ], | |
| "description": "Common interface for URI representation", | |
| "homepage": "http://github.com/thephpleague/uri-interfaces", | |
| "keywords": [ | |
| "rfc3986", | |
| "rfc3987", | |
| "uri", | |
| "url" | |
| ], | |
| "time": "2020-02-08T12:10:37+00:00" | |
| }, | |
| { | |
| "name": "league/uri-parser", | |
| "version": "1.4.1", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/thephpleague/uri-parser.git", | |
| "reference": "671548427e4c932352d9b9279fdfa345bf63fa00" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/thephpleague/uri-parser/zipball/671548427e4c932352d9b9279fdfa345bf63fa00", | |
| "reference": "671548427e4c932352d9b9279fdfa345bf63fa00", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "php": ">=7.0.0" | |
| }, | |
| "require-dev": { | |
| "friendsofphp/php-cs-fixer": "^2.0", | |
| "phpstan/phpstan": "^0.9.2", | |
| "phpstan/phpstan-phpunit": "^0.9.4", | |
| "phpstan/phpstan-strict-rules": "^0.9.0", | |
| "phpunit/phpunit": "^6.0" | |
| }, | |
| "suggest": { | |
| "ext-intl": "Allow parsing RFC3987 compliant hosts", | |
| "league/uri-schemes": "Allow validating and normalizing URI parsing results" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "1.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "League\\Uri\\": "src" | |
| }, | |
| "files": [ | |
| "src/functions_include.php" | |
| ] | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "Ignace Nyamagana Butera", | |
| "email": "nyamsprod@gmail.com", | |
| "homepage": "https://nyamsprod.com" | |
| } | |
| ], | |
| "description": "userland URI parser RFC 3986 compliant", | |
| "homepage": "https://github.com/thephpleague/uri-parser", | |
| "keywords": [ | |
| "parse_url", | |
| "parser", | |
| "rfc3986", | |
| "rfc3987", | |
| "uri", | |
| "url" | |
| ], | |
| "time": "2018-11-22T07:55:51+00:00" | |
| }, | |
| { | |
| "name": "psr/http-message", | |
| "version": "1.0.1", | |
| "source": { | |
| "type": "git", | |
| "url": "https://github.com/php-fig/http-message.git", | |
| "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" | |
| }, | |
| "dist": { | |
| "type": "zip", | |
| "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", | |
| "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", | |
| "shasum": "" | |
| }, | |
| "require": { | |
| "php": ">=5.3.0" | |
| }, | |
| "type": "library", | |
| "extra": { | |
| "branch-alias": { | |
| "dev-master": "1.0.x-dev" | |
| } | |
| }, | |
| "autoload": { | |
| "psr-4": { | |
| "Psr\\Http\\Message\\": "src/" | |
| } | |
| }, | |
| "notification-url": "https://packagist.org/downloads/", | |
| "license": [ | |
| "MIT" | |
| ], | |
| "authors": [ | |
| { | |
| "name": "PHP-FIG", | |
| "homepage": "http://www.php-fig.org/" | |
| } | |
| ], | |
| "description": "Common interface for HTTP messages", | |
| "homepage": "https://github.com/php-fig/http-message", | |
| "keywords": [ | |
| "http", | |
| "http-message", | |
| "psr", | |
| "psr-7", | |
| "request", | |
| "response" | |
| ], | |
| "time": "2016-08-06T14:39:51+00:00" | |
| } | |
| ], | |
| "packages-dev": [], | |
| "aliases": [], | |
| "minimum-stability": "stable", | |
| "stability-flags": [], | |
| "prefer-stable": false, | |
| "prefer-lowest": false, | |
| "platform": [], | |
| "platform-dev": [], | |
| "plugin-api-version": "1.1.0" | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| use Amp\Delayed; | |
| use Amp\Http\Client\HttpClientBuilder; | |
| use Amp\Http\Client\Request; | |
| use Amp\Http\Client\Response; | |
| use Amp\Loop; | |
| use function Amp\asyncCall; | |
| require_once("vendor/autoload.php"); | |
| $time = microtime(true); | |
| $result = []; | |
| // async | |
| asyncCall(function () use (&$result) { | |
| $client = HttpClientBuilder::buildDefault(); | |
| $uris = []; | |
| for ($i = 0; $i < 379; ++$i) { | |
| $uris[] = "https://http2.akamai.com/demo/tile-$i.png"; | |
| } | |
| $requestHandler = static function (string $uri) use ($client): Generator { | |
| /** @var Response $response */ | |
| $response = yield $client->request(new Request($uri)); | |
| return yield $response->getBody()->buffer(); | |
| }; | |
| try { | |
| $promises = []; | |
| foreach ($uris as $uri) { | |
| $promises[$uri] = Amp\call($requestHandler, $uri); | |
| } | |
| $bodies = yield $promises; | |
| foreach ($bodies as $uri => $body) { | |
| echo "."; | |
| $result[] = $uri . " - " . strlen($body) . " bytes" . substr($body, 0, 30) . PHP_EOL; | |
| } | |
| } catch (HttpException $error) { | |
| echo $error; | |
| } | |
| }); | |
| asyncCall(function () { // just add another coroutine. | |
| for ($i = 0; $i < 3; ++$i) { | |
| echo "+"; | |
| yield new Delayed(100); | |
| } | |
| }); | |
| echo PHP_EOL . "loop registered" . (microtime(true) - $time) . "sec" . PHP_EOL; | |
| Loop::run(); // wait all | |
| // var_dump($result); // result set | |
| echo PHP_EOL . "para finish" . (microtime(true) - $time) . "sec" . PHP_EOL; | |
| // sync | |
| $time = microtime(true); | |
| for ($i = 0; $i < 379; ++$i) { | |
| $uri = "https://http2.akamai.com/demo/tile-$i.png"; | |
| $body = file_get_contents($uri); | |
| echo "."; //$uri . " - " . \strlen($body) . " bytes" . substr($body, 0, 30) . PHP_EOL; | |
| } | |
| echo PHP_EOL . "sync finish" . (microtime(true) - $time) . "sec" . PHP_EOL; | |
| /* sample result | |
| + | |
| loop registered0.09955906867981sec | |
| ++........................................................................................................................................................................................................................................................................................................................................................................................... | |
| para finish0.89706420898438sec | |
| ........................................................................................................................................................................................................................................................................................................................................................................................... | |
| sync finish18.918792963028sec | |
| */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment