PackageTrack
Sign in Get early access

amphp/pipeline

Asynchronous iterators and operators.

v1.2.7 45M downloads/mo #373 most downloaded on Packagist amphp/pipeline

What this package is like to depend on

Last release 28 days ago

26 Jul 2026

Release timing varies

gaps range from 1 weeks to 1.1 years

Nearly every release is documented

notes for 10 of 10 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

17 releases · first in 2021

4 releases in the last 12 months

see the full history below

Release timeline

17 releases · Dec 2021 to Jul 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 17
  1. v1.2.7 26 Jul 2026
    Release notes

    What's Changed

    • Fixed consuming a value from the concurrent iterator returned from Pipeline::generate() if consumption of the prior emitted value was cancelled in the same event-loop tick
    • Fixed relieving back-pressure from Queue when the consume disposes of the concurrent iterator

    Full Changelog: v1.2.6...v1.2.7

    Open source →
  2. v1.2.6 27 Jun 2026
    Release notes

    What's Changed

    • Fixed incorrect position value returned from the concurrent iterator from a Queue when multiple consumers are waiting for a value and one of those waiting in the middle of the waiting list is cancelled (#23, thanks to @wtsergo)

    Full Changelog: v1.2.5...v1.2.6

    Open source →
  3. v1.2.5 27 Jun 2026
    Release notes

    What's Changed

    • Fixed early disposal of iterator created with Pipeline::generate()
    • Fixed inverted return value of isComplete() on iterator returned from Pipeline::concat()
    • Fixed termination of pipelines when concurrency > 1 when the source throws and another concurrent coroutine already completed the pipeline
    • Fixed the call ordering on an initial pipeline operator if the source is async
    • Improved the garbage collection speed of concurrent pipelines when terminated early

    Full Changelog: v1.2.4...v1.2.5

    Open source →
  4. v1.2.4 06 May 2026
    Release notes

    What's Changed

    • Return static in methods that return self<T> by @vudaltsov in #24
    • Add #[Override] attributes

    New Contributors

    Full Changelog: v1.2.3...v1.2.4

    Open source →
  5. v1.2.3 16 Mar 2025
    Release notes
    • Fixed failing any pending value consumption when a Queue is disposed (regression in 1.2.2).

    Full Changelog: v1.2.2...v1.2.3

    Open source →
  6. v1.2.2 19 Jan 2025
    Release notes

    What's Changed

    • Fixed clearing back-pressure if a Queue was completed while containing emitted values which had not been consumed, then the consumer explicitly disposed (called ConcurrentIterator::dispose()) of the associated iterator without consuming those values. Prior, the futures were not properly resolved with a DisposedException, but now will resolve as expected.

    Full Changelog: v1.2.1...v1.2.2

    Open source →
  7. v1.2.1 04 Jul 2024
    Release notes

    What's Changed

    • Fix a potential race condition when using a Queue to create a ConcurrentIterator. An Error with message "Must call suspend() before calling throw()" was thrown when a Cancellation provided to ConcurrentIterator::continue() was cancelled and the underlying Queue instance was simultaneously completed. See #22.

    Full Changelog: v1.2.0...v1.2.1

    Open source →
  8. v1.2.0 10 Mar 2024
    Release notes

    What's Changed

    • Added Pipeline::buffer(), which provides control of the number of values buffered by the pipeline before back-pressure is applied to the data source by @trowski in #21

    Full Changelog: v1.1.0...v1.2.0

    Open source →
  9. v1.1.0 23 Dec 2023
    Release notes
    • Added Pipeline::merge() which combines multiple iterators, emitting a value whenever any iterator emits a value.
    • Fixed Pipeline::take() not completing until a value beyond the given count was emitted. The pipeline now completes immediately after emitting the last view.
    • Marked the template type of ConcurrentIterator as covariant.
    Open source →
  10. v1.0.0 22 Dec 2022
    Release notes

    Initial stable release 🎉

    Changes from 1.0.0 Beta 7

    • Marked ConcurrentArrayIterator, ConcurrentChainedIterator, and ConcurrentIterableIterator as @internal. Instead of these classes, use Pipeline::fromIterable() or Pipeline::concat()
    • Pipeline::concat() now accepts an array of any iterable, not only other Pipeline objects
    Open source →
  11. v1.0.0-beta.7 18 Nov 2022 pre-release

    Nothing published for this version

  12. v1.0.0-beta.6 07 Nov 2022 pre-release

    Nothing published for this version

  13. v1.0.0-beta.5 08 Apr 2022 pre-release

    Nothing published for this version

  14. v1.0.0-beta.4 24 Feb 2022 pre-release

    Nothing published for this version

  15. v1.0.0-beta.3 30 Jan 2022 pre-release

    Nothing published for this version

  16. v1.0.0-beta.2 10 Dec 2021 pre-release

    Nothing published for this version

  17. v1.0.0-beta.1 07 Dec 2021 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive