finds.dev← search

// the find

mholt/PapaParse

★ 13,527 · JavaScript · MIT · updated Jul 2026

Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input

PapaParse is a browser-first CSV parser for JavaScript with streaming support, worker thread offloading, and unusually correct handling of RFC 4180 edge cases like embedded newlines and quoted fields. It also handles Node.js readable streams. Useful for anyone who needs to parse user-uploaded CSVs in the browser without reaching for a server.

Worker thread support is real and actually keeps the UI unblocked during large file parsing — most competing parsers skip this. Streaming chunked parsing means you can process files larger than available memory without buffering everything. The auto-detect delimiter heuristic is good enough that it just works on most real-world files. No dependencies at all: the entire thing is one file you can audit in an afternoon.

The codebase is essentially frozen — the last meaningful commit activity has slowed considerably and there are long-open issues with PRs attached that aren't being merged. TypeScript types are community-maintained via DefinitelyTyped rather than bundled, so they can lag. The Node.js streaming API is a second-class citizen with several config options disabled and different behavior than the browser path, which creates subtle bugs when you share parsing code across environments. Error handling for malformed input returns warnings in a `meta.errors` array that most callers ignore rather than throwing, so silent data corruption is easy to miss.

View on GitHub → Homepage ↗

// 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 →