cognesy / instructor-http-pool
Concurrent HTTP request execution for Instructor
v2.0.0
2026-03-13 19:49 UTC
Requires
- php: ^8.3
- cognesy/instructor-config: ^2.0
- cognesy/instructor-events: ^2.0
- cognesy/instructor-http-client: ^2.0
- cognesy/instructor-utils: ^2.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.4
- guzzlehttp/psr7: ^2.7
- icanhazstring/composer-unused: ^0.9.0
- jetbrains/phpstorm-attributes: ^1.2
- maglnet/composer-require-checker: ^4.16
- mockery/mockery: ^1.6
- pestphp/pest: ^2.34
- phpstan/phpstan: ^1.11
- roave/security-advisories: dev-latest
- symfony/http-client: ^7.3
- vimeo/psalm: ^6.0
Suggests
- guzzlehttp/guzzle: For Guzzle HTTP pool support
- symfony/http-client: For Symfony HTTP pool support
README
Concurrent HTTP request execution for Instructor.
http-pool is intentionally separate from http-client:
http-clienthandles one request at a timehttp-poolhandles many requests at once
Quick Start
use Cognesy\Http\Collections\HttpRequestList; use Cognesy\Http\Data\HttpRequest; use Cognesy\HttpPool\Config\HttpPoolConfig; use Cognesy\HttpPool\HttpPool; $pool = HttpPool::fromConfig(new HttpPoolConfig(driver: 'guzzle')); $responses = $pool->pool( HttpRequestList::of( new HttpRequest('https://example.com/a', 'GET', [], '', []), new HttpRequest('https://example.com/b', 'GET', [], '', []), ), maxConcurrent: 2, );
Docs
packages/http-pool/docs/overview.mdpackages/http-pool/docs/quickstart.mdpackages/http-pool/docs/custom-handlers.md