guzzlehttp/promises
Guzzle promises library
3.0.1
1.1B downloads/mo
#12 most downloaded on composer
guzzle/promises
What this package is like to depend on
Last release 18 days ago
05 Aug 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 30 of 33 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
33 releases · first in 2015
8 releases in the last 12 months
see the full history below
Release timeline
33 releases · Apr 2015 to Aug 2026
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 33-
3.0.105 Aug 2026Release notes
Open source →Changed
- Changed the default
TReasonofFulfilledPromiseandCreate::promiseFor()tonever - Changed the default
TValueofRejectedPromiseandCreate::rejectionFor()tonever
Fixed
- Fixed
EachPromiseabandoning its aggregate when the pending window drains unsettled - Fixed
EachPromiseadmitting new work after its aggregate has settled
Release notes
Open source →Changed
- Changed the default
TReasonofFulfilledPromiseandCreate::promiseFor()tonever - Changed the default
TValueofRejectedPromiseandCreate::rejectionFor()tonever
Fixed
- Fixed
EachPromiseabandoning its aggregate when the pending window drains unsettled - Fixed
EachPromiseadmitting new work after its aggregate has settled
- Changed the default
-
3.0.020 Jul 2026Release notes
Open source →Added
- Added
concurrencyconfig support toUtils::all()andEach::of() - Added generic PHPDoc annotations to promise APIs and collection callbacks
- Added recursive and
concurrencyconfig support toUtils::settle() - Allowed promises to be resolved without passing a value
Changed
- Changed
Utils::inspect()to return actual rejection reasons - Changed
Utils::inspect()to prefer the settled state over late wait function exceptions - Changed late rejection callbacks to follow rejected promises
- Reject native PHP serialization of in-flight runtime objects
- Made static helper classes non-instantiable
- Require iterable inputs for promise collection helpers and
EachPromise - Iterate
IteratorAggregateinputs to collection helpers instead of treating them as a single value - Improved recursive
Utils::all()handling of dynamically-added settled values and raw values
Removed
- Dropped support for PHP 7.2 and 7.3
Release notes
Open source →Added
- Added
concurrencyconfig support toUtils::all()andEach::of() - Added generic PHPDoc annotations to promise APIs and collection callbacks
- Added recursive and
concurrencyconfig support toUtils::settle() - Allowed promises to be resolved without passing a value
Changed
- Changed
Utils::inspect()to return actual rejection reasons - Changed
Utils::inspect()to prefer the settled state over late wait function exceptions - Changed late rejection callbacks to follow rejected promises
- Reject native PHP serialization of in-flight runtime objects
- Made static helper classes non-instantiable
- Require iterable inputs for promise collection helpers and
EachPromise - Iterate
IteratorAggregateinputs to collection helpers instead of treating them as a single value - Improved recursive
Utils::all()handling of dynamically-added settled values and raw values
Removed
- Dropped support for PHP 7.2 and 7.3
- Added
-
2.5.205 Aug 2026Release notes
Open source →Fixed
- Fixed
EachPromiseabandoning its aggregate when the pending window drains unsettled - Fixed
EachPromiseadmitting new work after its aggregate has settled
- Fixed
-
2.5.108 Jul 2026 -
2.5.002 Jun 2026Release notes
Open source →Deprecated
- Deprecated passing non-iterable inputs to promise collection helpers and
EachPromise
Release notes
Open source →Deprecated
- Deprecated passing non-iterable inputs to promise collection helpers and
EachPromise
- Deprecated passing non-iterable inputs to promise collection helpers and
-
2.4.120 May 2026Release notes
Open source →Fixed
- Fixed cancelling settled coroutines when no current promise remains
Release notes
Open source →Fixed
- Fixed cancelling settled coroutines when no current promise remains
-
2.4.020 May 2026Release notes
Open source →Changed
- Empty
EachPromiseinstances now resolve when the task queue runs withoutwait()
Release notes
Open source →Changed
- Empty
EachPromiseinstances now resolve when the task queue runs withoutwait()
- Empty
-
2.3.119 May 2026Release notes
Open source →Fixed
- Fixed
Utils::inspect()returning the internal reason array instead of theAggregateException
Release notes
Open source →Fixed
- Fixed
Utils::inspect()returning the internal reason array instead of theAggregateException
- Fixed
-
2.3.022 Aug 2025 -
2.2.027 Mar 2025Release notes
Open source →Fixed
- Revert "Allow an empty EachPromise to be resolved by running the queue"
Release notes
Open source →Fixed
- Revert "Allow an empty EachPromise to be resolved by running the queue"
-
2.1.027 Mar 2025 -
2.0.417 Oct 2024Release notes
Open source →Fixed
- Once settled, don't allow further rejection of additional promises
-
2.0.318 Jul 2024 -
2.0.203 Dec 2023 -
2.0.103 Aug 2023 -
2.0.021 May 2023Release notes
Open source →Added
- Added PHP 7 type hints
Changed
- All previously non-final non-exception classes have been marked as soft-final
Removed
- Dropped PHP < 7.2 support
- All functions in the
GuzzleHttp\Promisenamespace
-
1.5.321 May 2023 -
1.5.228 Aug 2022 -
1.5.122 Oct 2021Release notes
Open source →Fixed
- Revert "Call handler when waiting on fulfilled/rejected Promise"
- Fix pool memory leak when empty array of promises provided
-
1.5.007 Oct 2021Release notes
Open source →Changed
- Call handler when waiting on fulfilled/rejected Promise
- Officially support PHP 8.1
Fixed
- Fix manually settle promises generated with
Utils::task
-
1.4.107 Mar 2021 -
1.4.030 Sep 2020Release notes
Open source →Added
- Support for PHP 8
- Optional
$recursiveflag toall - Replaced functions by static methods
Fixed
- Fix empty
eachprocessing - Fix promise handling for Iterators of non-unique keys
- Fixed
method_existscrashes on PHP 8 - Memory leak on exceptions
-
v1.3.120 Dec 2016 -
1.3.018 Nov 2016Release notes
Open source →Added
- Adds support for custom task queues.
Fixed
- Fixed coroutine promise memory leak.
-
1.2.018 May 2016 -
1.1.008 Mar 2016Release notes
Open source →Changed
- Update EachPromise to prevent recurring on a iterator when advancing, as this could trigger fatal generator errors.
- Update Promise to allow recursive waiting without unwrapping exceptions.
-
1.0.315 Oct 2015Release notes
Open source →Changed
- Update EachPromise to immediately resolve when the underlying promise iterator
is empty. Previously, such a promise would throw an exception when its
waitfunction was called.
- Update EachPromise to immediately resolve when the underlying promise iterator
is empty. Previously, such a promise would throw an exception when its
-
1.0.215 Aug 2015 -
1.0.124 Jun 2015Release notes
Open source →Changed
- Updating EachPromise to call next on the underlying promise iterator as late as possible to ensure that generators that generate new requests based on callbacks are not iterated until after callbacks are invoked.
-
1.0.013 May 2015 -
0.1.210 May 2015Nothing published for this version
-
0.1.121 Apr 2015Nothing published for this version
-
0.1.018 Apr 2015Nothing published for this version