Back to Explore

paulmillr/readdirp

GitHub
2 watchersOpen source

Last release:

readdirp is a Node.js utility that recursively reads a directory, similar to fs.readdir, but exposes a stream API and a promise API. It’s useful for efficiently iterating over files and subdirectories with a small RAM and CPU footprint, with options for filtering, recursion depth, and optional stat collection.

Project status

  • Active maintenance: Evidence suggests it is still actively worked on, with the upstream repo receiving a recent push on 2026-05-09. The latest published updates are older (5.0.0 on 2025-11-25), so development may be ahead of the most recent published change.
  • Update cadence: Updates include at least one major update in 2025 (4.1.x in Feb 2025, then 5.0.0 in Nov 2025), implying an infrequent but non-abandoned cadence rather than continuous releases.

AI summary generated

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

Recent updates

  • 5.0.0

    Release 5.0.0 makes the package ESM-only and raises the minimum supported Node.js version to v20.19. It also switches TypeScript compilation to use the jsbt default configuration (which the release notes describe as isolatedDeclaration-based types for docs).

    BreakingSecurity
  • 4.1.2

    Release 4.1.2 primarily addresses a stream issue, where the readable stream could become broken when a normal flow error occurs. The code change adjusts how the stream handles falsy entries during batching, and the tests were expanded to cover additional ENOENT warning behavior.

  • 4.1.1

    Release 4.1.1 is primarily a packaging fix. It updates the root package.json module type handling and adjusts test/workflow wiring to match the new test location.

  • 4.1.0

    Release 4.1.0 adds support for running and publishing the project in Deno, Bun, and JSR, and bumps the minimum supported Node.js version. It also includes a typings fix referenced in PR #202. The code and repo configuration changes indicate a broader shift toward ESM-first packaging than what the release notes explicitly call out.

    BreakingFeatures
  • 4.0.2

    Release 4.0.2 focuses on improving compatibility with graceful-fs and reducing EMFILE errors by switching stat and lstat usage to async methods. It also updates README typing/docs around fileFilter, and improves the TypeScript typing for readdirpPromise.

  • 4.0.1

    Release 4.0.1 is a small patch intended to fix invalid ESM imports. The code diff is limited to packaging metadata and version bumps, with no changes to runtime source logic visible in the provided diff.

  • 4.0.0

    readdirp 4.0.0 is a TypeScript rewrite with dual CJS/ESM packaging via package.json export maps. The release also raises the minimum supported Node.js version to 14 and removes glob-based filtering.

    Breaking
  • 3.2.0

    Release 3.2.0 focuses on performance improvements (claimed 250% faster) and refactors the stream implementation to be more idiomatic. The actual diff shows several behavioral and typing changes in addition to the stream refactor, including TypeScript declaration restructuring and changes to how the `root` option is handled internally.

    Breaking
  • 3.3.0

    Release 3.3.0 focuses on stabilizing RAM usage and introducing a `highWaterMark` option to control performance and backpressure. It also claims to fix race conditions affecting `for-await` iteration over the stream.

    Features
  • 3.1.1

    Release 3.1.1 focuses on enabling bigint output for `fs.stat` on Windows. The code changes go beyond that: the stat collection behavior and output shape appear to have been modified, along with filtering and error-handling logic.

    BreakingFeatures