PHPackages                             arntech/guzzle-pool-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. arntech/guzzle-pool-client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

arntech/guzzle-pool-client
==========================

ARNTech guzzle pool.

0.0.3(6y ago)02GPL-3.0-onlyPHPPHP &gt;=7.1

Since Jun 29Pushed 6y ago2 watchersCompare

[ Source](https://github.com/ARNTechnology/guzzle-pool-client)[ Packagist](https://packagist.org/packages/arntech/guzzle-pool-client)[ RSS](/packages/arntech-guzzle-pool-client/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

arntech/guzzle-pool-client
==========================

[](#arntechguzzle-pool-client)

[![Source Code](https://camo.githubusercontent.com/33ddaa155b0482b2ac886eaa148c454bce63db55f6afdb0217ac680231658f66/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d736f75726365266d6573736167653d61726e746563682f67757a7a6c652d706f6f6c2d636c69656e7426636f6c6f723d626c7565267374796c653d666c61742d737175617265)](https://github.com/ARNTechnology/guzzle-pool-client)[![Latest Version](https://camo.githubusercontent.com/d2c6db9270978429888cc7f50c5bf0d9c03355c511c9562d09f2ec8b160e7e31/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f61726e746563682f67757a7a6c652d706f6f6c2d636c69656e742e7376673f7374796c653d666c61742d737175617265266c6162656c3d72656c65617365)](https://packagist.org/packages/arntech/guzzle-pool-client)[![Software License](https://camo.githubusercontent.com/95dca18cbd276dd86f582668f6994d6f37ae9efc079e73ec39ba695e9f8357de/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f61726e746563682f67757a7a6c652d706f6f6c2d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://github.com/ARNTechnology/guzzle-pool-client/blob/master/LICENSE)[![PHP Version](https://camo.githubusercontent.com/281e743080a9c2a59201fa34336987ee143e0951d0a8964b3681f132d7c4f1f5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f61726e746563682f67757a7a6c652d706f6f6c2d636c69656e742e7376673f7374796c653d666c61742d737175617265)](https://php.net)[![Total Downloads](https://camo.githubusercontent.com/8e4ecf5a4d9174091cafcadd3c00303f84a556484d6ad9810a967e6aa73baa47/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f61726e746563682f67757a7a6c652d706f6f6c2d636c69656e742e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d6d656469756d76696f6c6574726564)](https://packagist.org/packages/arntech/guzzle-pool-client)

What is this?
-------------

[](#what-is-this)

This is a library that implements multiple (hopefully in the future will be more than one) pool types for the Guzzle client. For the moment, the focus was on using a non locked pool that enables a better async schedule for the remote calls.

### What does that mean?

[](#what-does-that-mean)

Guzzle by default has blocking pools. They do not accept newer requests after you call $promise-&gt;wait(). The problem with that is if you need to make new calls based on the response from the old calls. For this, one should (traditionally) wait for the current request queue to settle.

Installation
------------

[](#installation)

The preferred method of installation is via \[Composer\]\[\]. Run the following command to install the package and add it as a requirement to your project's `composer.json`:

```
composer require arntech/card
```

Usage
-----

[](#usage)

### Create a new Pool

[](#create-a-new-pool)

```
$pool = new DynamicPool(100);// where 100 is the pool size
```

### Create a client

[](#create-a-client)

```
$pool = new DynamicPool(100);// where 100 is the pool size
$client = new DynamicPoolClient(['pool'=>$pool]);
//or
$client = new DynamicPoolClient(['pool_size'=>100]);// where 100 is the pool size
//or use uniqe calls for each request
$client = new DynamicUniquePoolClient(['pool_size'=>100]);
$client->add($promise, 'key');
```

***DynamicPoolClient*** extends ***GuzzleHttp\\Client***. The constructor accepts all GuzzleHttp\\Client arguments plus **pool** or **pool\_size**. ***DynamicUniquePoolClient*** is a client that requires and uses ***DynamicUniquePool*** this pool ensures that any consecutive requests are executed only once. This is achieved by setting a key (for example a hash between url and requested arguments).

Example
-------

[](#example)

### 1. DynamicPoolClient

[](#1-dynamicpoolclient)

```
$this->client = new DynamicPoolClient(['pool_size'=>10]);
$req1=$this->client->getAsync('http://first.url')
    ->then(function ($response) {
        //do something
        $req2=$this->client->getAsync('http://second.url')
            ->then(function ($response) {
                //do something with response
            });
        $this->client->add($req2);
    });
$this->client->add($req1);
$this->client->wait();
```

### 2. DynamicUniquePoolClient

[](#2-dynamicuniquepoolclient)

```
private function runGet($url)
{
    $this->client->add($this->client->getAsync($url), $url);
}
$this->client = new DynamicUniquePoolClient(['pool_size'=>10]);
$this->runGet('http://first.url');
$this->runGet('http://second.url');
$this->runGet('http://first.url'); //this will be canceled

$this->client->wait();
```

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

2193d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4cf9a1274de5297ee35726da23eaa626551cb640d3ef536b18ccf24be517aa92?d=identicon)[arntech](/maintainers/arntech)

---

Top Contributors

[![alxnegrila](https://avatars.githubusercontent.com/u/4835042?v=4)](https://github.com/alxnegrila "alxnegrila (2 commits)")[![ARNTechnology](https://avatars.githubusercontent.com/u/59684052?v=4)](https://github.com/ARNTechnology "ARNTechnology (2 commits)")

---

Tags

Guzzlepoolguzzle poolcvvcvv2guzzle asyncguzzle async poolguzzle non blocking pool

### Embed Badge

![Health badge](/badges/arntech-guzzle-pool-client/health.svg)

```
[![Health](https://phpackages.com/badges/arntech-guzzle-pool-client/health.svg)](https://phpackages.com/packages/arntech-guzzle-pool-client)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k543.5M2.6k](/packages/aws-aws-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[guzzlehttp/oauth-subscriber

Guzzle OAuth 1.0 subscriber

24215.4M151](/packages/guzzlehttp-oauth-subscriber)[illuminate/http

The Illuminate Http package.

11937.9M6.8k](/packages/illuminate-http)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[graham-campbell/guzzle-factory

Provides A Simple Guzzle Factory With Good Defaults

927.0M55](/packages/graham-campbell-guzzle-factory)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
