Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to RFC 4180, and it comes with these features:
- Easy to use
- Parse CSV files directly (local or over the network)
- Fast mode (is really fast)
- Stream large files (even via HTTP)
- Reverse parsing (converts JSON to CSV)
- Auto-detect delimiter
- Worker threads to keep your web page reactive
- Header row support
- Pause, resume, abort
- Can convert numbers and booleans to their types
- Optional jQuery integration to get files from
<input type="file">
elements
Papa Parse has no dependencies - not even jQuery.
To learn how to use Papa Parse:
Papa Parse can parse a Readable Stream instead of a File when used in Node.js environments (in addition to plain strings). In this mode, encoding
must, if specified, be a Node-supported character encoding. The Papa.LocalChunkSize
, Papa.RemoteChunkSize
, download
, withCredentials
and worker
config options are unavailable.
Additionally, Rich Harris forked this project to make Baby Parse which runs in Node.js environments.
$ npm install babyparse
Use it just like Papa Parse. However:
- Files are not supported; strings only (you can use Node's file facilities to load file contents yourself)
- Some config options are unavailable:
- worker
- download (you can use Node's network facilities to download files yourself)
- encoding
- chunk
Otherwise, Baby Parse has nearly all the same functionality as Papa Parse 4.0, including the unparse()
utility.
Use papaparse.min.js for production.
For usage instructions, see the homepage and, for more detail, the documentation.
Papa Parse is under test. Download this repository, run npm install
, then npm test
to run the tests in your browser.
To discuss a new feature or ask a question, open an issue. To fix a bug, submit a pull request to be credited with the contributors! Remember, a pull request, with test, is best. You may also discuss on Twitter with #PapaParse or directly to me, @mholt6.