mholt/papaparse

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

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 16 minutes ago
Added to GitGenius on September 4th, 2026
Created on October 7th, 2013
Open Issues & Pull Requests: 217 (+0)
GitHub issues: Enabled
Number of forks: 1,187
Total Stargazers: 13,565 (+0)
Total Subscribers: 148 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 26.1 hours
Mean response time: 135.2 days
90th percentile: 445.5 days
Tracked items: 79

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 6% of issues opened in the past year have been closed. Three people close 82% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 45
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,180 days
Stale 30+ days: 42
Stale 90+ days: 41

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • v6-todo (14)
  • gremlin-mode (5)
  • help wanted (5)
  • enhancement (4)
  • discussion (3)
  • duplicate (2)
  • good first issue (2)
  • unconfirmed bug (2)

Detailed Description

Papa Parse is a CSV parser for JavaScript that handles delimited text parsing in the browser and Node.js environments.

The tool solves the problem of reliably parsing CSV data, including malformed input and large files, while maintaining correctness according to RFC 4180. It works by providing both standard parsing and streaming modes, with the ability to process files directly from local sources or over the network. The parser includes worker thread support to prevent blocking the main thread during large file operations, auto-detection of delimiters, and bidirectional conversion between CSV and JSON formats. It correctly handles edge cases like line breaks and quotations that many other parsers mishandle.

Developers should choose this tool if they need fast, dependency-free CSV parsing in browser or Node.js contexts. It suits projects handling user-uploaded CSV files, remote data sources, or large datasets where performance and correctness matter. The tool offers both immediate parsing and streaming modes, allowing developers to choose based on their memory and responsiveness constraints. For Node.js specifically, it supports both Readable Streams and pipe-based streaming patterns. The README does not compare it to alternative CSV parsers.

The project maintains a test suite that contributors must keep passing, with continuous integration enforcing test requirements on pull requests. The maintainers request that bug fixes include tests and encourage discussion of new features through issues before implementation.