NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #15 most downloaded on Packagist
Guzzle promises library
Last release 1 months ago
24 Aug 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 32 of 35 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
35 releases · first in 2015
Added Added support for PHP 8.6
Changed the default TReason of FulfilledPromise and Create::promiseFor() to never
TReason of FulfilledPromise and Create::promiseFor() to neverTValue of RejectedPromise and Create::rejectionFor() to neverEachPromise abandoning its aggregate when the pending window drains unsettledEachPromise admitting new work after its aggregate has settledOne column per quarter.
Added concurrency config support to Utils::all() and Each::of()
concurrency config support to Utils::all() and Each::of()concurrency config support to Utils::settle()Utils::inspect() to return actual rejection reasonsUtils::inspect() to prefer the settled state over late wait function exceptionsEachPromiseIteratorAggregate inputs to collection helpers instead of treating them as a single valueUtils::all() handling of dynamically-added settled values and raw valuesAdded Added support for PHP 8.6
Fixed EachPromise abandoning its aggregate when the pending window drains unsettled
EachPromise abandoning its aggregate when the pending window drains unsettledEachPromise admitting new work after its aggregate has settledFixed recursive Utils::all() rejecting generator inputs
Utils::all() rejecting generator inputsDeprecated passing non-iterable inputs to promise collection helpers and EachPromise
EachPromiseFixed cancelling settled coroutines when no current promise remains
Empty EachPromise instances now resolve when the task queue runs without wait()
EachPromise instances now resolve when the task queue runs without wait()Fixed Utils::inspect() returning the internal reason array instead of the AggregateException
Utils::inspect() returning the internal reason array instead of the AggregateExceptionAdded PHP 8.5 support
Revert "Allow an empty EachPromise to be resolved by running the queue"
Allow an empty EachPromise to be resolved by running the queue
Once settled, don't allow further rejection of additional promises
### Changed - PHP 8.4 support
Replaced call_user_func* with native calls
call_user_func* with native calls### Changed - PHP 8.3 support
All previously non-final non-exception classes have been marked as soft-final
GuzzleHttp\Promise namespaceRemoved remaining usage of deprecated functions
### Changed - Officially support PHP 8.2
Revert "Call handler when waiting on fulfilled/rejected Promise"
Call handler when waiting on fulfilled/rejected Promise
Utils::taskFixed each_limit skipping promises and failing
each_limit skipping promises and failingOptional $recursive flag to all
$recursive flag to alleach processingmethod_exists crashes on PHP 8wait() foreign promise compatibility
wait() foreign promise compatibilityAdds support for custom task queues.
Update to now catch \Throwable on PHP 7+
\Throwable on PHP 7+Update EachPromise to prevent recurring on a iterator when advancing, as this could trigger fatal generator errors.
Update EachPromise to immediately resolve when the underlying promise iterator is empty. Previously, such a promise would throw an exception when its
wait
function was called.Conditionally require functions.php.
Updating EachPromise to call next on the underlying promise iterator as late as possible to ensure that generators that generate new requests based on
- Initial release
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →