finds.dev← search

// the find

max-mapper/mississippi

★ 1,086 · JavaScript · BSD-2-Clause · updated Jun 2020

A collection of useful stream utility modules for writing better code using streams

Mississippi is a bundle of Node.js stream utility modules (pump, pumpify, through2, from2, duplexify, etc.) wrapped under one require. It exists to paper over the original Node streams API's biggest failure modes: unhandled errors on pipe, no callback on completion, and difficulty composing transforms. Aimed at Node backend developers who work directly with streams rather than hiding them behind higher-level abstractions.

Each method delegates to a well-tested, widely-used standalone module — pump, pumpify, through2, and others are battle-tested in production at scale. The pipe/pipeline split is genuinely useful: pipe for linear chains with a completion callback, pipeline for building reusable composite transforms. The parallel transform with preserved ordering is a real feature that saves people from reinventing a bounded async queue. The README is honest about what each method delegates to, so you can drop individual packages if you only need one.

Abandoned since 2020 and the underlying modules have themselves diverged or been superseded — through2 is now considered unnecessary since Node 10+ streams implement the same API natively. The aggregation story has largely collapsed: modern Node's stream.pipeline() and stream.finished() ship built-in and handle most of what this package does, making it dead weight in any Node 18+ project. No TypeScript types anywhere in this repo or its bundled deps, which is a friction point in 2024. The package is a coordination burden — when one of its 10 delegated modules has a bug or security issue, you need a mississippi release to get the fix, not just a transitive update.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →