finds.dev← search

// the find

mafintosh/csv-parser

★ 1,501 · JavaScript · MIT · updated May 2026

Streaming csv parser inspired by binary-csv that aims to be faster than everyone else

A streaming CSV parser for Node.js built on the Transform stream API, parsing rows as they arrive rather than loading the whole file into memory. It's from mafintosh, so the internals are competent and the streaming-first design is genuine. Aimed at anyone processing large CSV files in a Node pipeline.

Proper backpressure support via Node's stream API means you can pipe a 10GB file without OOM. The csv-spectrum acid test compliance means it handles the annoying edge cases — quoted newlines, escaped quotes, mixed line endings — that homegrown parsers always get wrong. `mapHeaders` and `mapValues` callbacks give you transformation at parse time without a second pass. The `outputByteOffset` option is a rare practical feature: useful for resumable processing or error attribution in large files.

All values come out as strings — there's no type inference, so you're manually coercing numbers and booleans downstream. BOM handling requires a separate package (`strip-bom-stream`), which should be a built-in option at this point. The Travis CI badge is dead and the repo shows signs of low maintenance — last meaningful activity was a few years back before the recent push, and open issues have piled up. No async iterator interface (`for await...of`), which is how most modern Node code processes streams today; you're stuck with the older event-based pattern.

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 →