Back to Explore

mcollina/fastq

GitHub
1 watchersOpen source

Last release: 5 months ago

fastq is a fast, in-memory work queue for Node.js. It lets you run tasks with configurable concurrency, supports callback and Promise-based worker APIs, and provides controls like pause, resume, idle checks, and queue draining callbacks. It is useful for processing many async tasks efficiently without managing concurrency manually.

Project status

  • The repository appears actively maintained, with multiple tagged updates in 2025 (notably v1.19.0, v1.19.1, and v1.20.1, the most recent at 2025-12-23).
  • The update cadence looks somewhat irregular, with v1.19.0 in late Jan 2025, v1.19.1 in late Feb 2025, then a longer gap until v1.20.1 in late Dec 2025.

AI summary generated Today

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v1.20.1

    5 months ago

    v1.20.1 primarily introduces a new `queue.abort()` API to clear queued work and settle pending tasks. It also migrates the project from StandardJS to ESLint using neostandard and updates related tooling and CI configuration. While the release notes mention these high level changes, the diff shows additional packaging and workflow changes that are not mentioned.

    Features
  • v1.19.1

    2/26/2025

    v1.19.1 mainly updates development tooling and documentation. It bumps the nyc devDependency, enriches the TypeScript declaration file with JSDoc comments, and adjusts the CI workflow Node version matrices related to coverage/testing.

  • v1.19.0

    1/30/2025

    v1.19.0 exposes the queue paused state as a new read-only property, `queue.paused`. The update includes TypeScript typings, documentation, and a unit test to verify the flag toggles when pausing the queue.

    Features
  • v1.18.0

    12/23/2024

    v1.18.0 contains a fix in the fastq queue implementation so that queue.drained() resolves only after asynchronous worker tasks have fully completed. The release notes mention the drained resolution timing fix, and the code diff adds corresponding tests and improves drain callback handling.

    Breaking
  • v1.17.1

    2/5/2024

    v1.17.1 updates fastq to ensure the drain event is emitted when a pause/resume sequence occurs and the queue is already empty. The core code change is in queue.resume, with a corresponding test added to lock in the behavior.

  • v1.17.0

    1/26/2024

    v1.17.0 includes updates intended to improve how fastq handles concurrency, plus CI and TypeScript definition changes. The code diff shows a notable behavioral change around concurrency enforcement and adds runtime mutability for the concurrency setting. Some of the release notes are not directly reflected in the provided JS diff (for example, TypeScript-related changes).

  • v1.16.0

    12/18/2023

    v1.16.0 adds a new `running()` method to the TypeScript definitions and updates CI to run against newer Node versions and newer GitHub Actions versions. It also includes an error-handling fix related to `unshift` when the worker throws, with additional tests to cover the scenario.

    Features
  • v1.15.0

    1/1/2023

    v1.15.0 includes a targeted fix for the promise-based API, queueAsPromised.drained(), to handle the case when the queue is already idle. The change adds an early-resolution path and updates tests accordingly.

  • v1.14.0

    12/2/2022

    v1.14.0 makes small updates focused on error handling documentation and TypeScript typings. The only substantive code-diff changes are in index.d.ts and README.md, with a package version bump.

    Breaking
  • v1.13.0

    9/10/2021

    v1.13.0 adds a new promise-based helper to wait for a fastq queue to finish processing all queued tasks. The code changes also include corresponding TypeScript typings, README documentation, and new tests that cover successful completion and error cases.

    Features