{"action":"created","issue":{"url":"https://api.github.com/repos/jsforce/jsforce/issues/425","repository_url":"https://api.github.com/repos/jsforce/jsforce","labels_url":"https://api.github.com/repos/jsforce/jsforce/issues/425/labels{/name}","comments_url":"https://api.github.com/repos/jsforce/jsforce/issues/425/comments","events_url":"https://api.github.com/repos/jsforce/jsforce/issues/425/events","html_url":"https://github.com/jsforce/jsforce/issues/425","id":149913853,"number":425,"title":"Custom CSV parser & formatter","user":{"login":"tejasmanohar","id":5959235,"avatar_url":"https://avatars.githubusercontent.com/u/5959235?v=3","gravatar_id":"","url":"https://api.github.com/users/tejasmanohar","html_url":"https://github.com/tejasmanohar","followers_url":"https://api.github.com/users/tejasmanohar/followers","following_url":"https://api.github.com/users/tejasmanohar/following{/other_user}","gists_url":"https://api.github.com/users/tejasmanohar/gists{/gist_id}","starred_url":"https://api.github.com/users/tejasmanohar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tejasmanohar/subscriptions","organizations_url":"https://api.github.com/users/tejasmanohar/orgs","repos_url":"https://api.github.com/users/tejasmanohar/repos","events_url":"https://api.github.com/users/tejasmanohar/events{/privacy}","received_events_url":"https://api.github.com/users/tejasmanohar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-20T23:28:06Z","updated_at":"2016-04-21T00:34:51Z","closed_at":null,"body":"Is there a reason JSForce has its [own CSV parser/formatter](https://github.com/jsforce/jsforce/blob/master/lib/csv.js) rather than using an existing one like [fast-csv](https://www.npmjs.com/package/fast-csv) or [csv-parse](https://www.npmjs.com/package/csv-parse)? Are there any custom, Salesforce-specific transformations in this parser?\r\n\r\nPS: I'm currently not using it because the usage of the CSV parser in JSForce waits for all records to be returned and then parses the CSV rather than doing it in a streaming-fashion, which takes up too much memory for large data sets, but I've been having some trouble with some records coming back from the Bulk Query API with generic csv parsers so wondering if there are any quirks of the CSV returned from SF that you've noticed. @stomita "},"comment":{"url":"https://api.github.com/repos/jsforce/jsforce/issues/comments/212669013","html_url":"https://github.com/jsforce/jsforce/issues/425#issuecomment-212669013","issue_url":"https://api.github.com/repos/jsforce/jsforce/issues/425","id":212669013,"user":{"login":"stomita","id":23387,"avatar_url":"https://avatars.githubusercontent.com/u/23387?v=3","gravatar_id":"","url":"https://api.github.com/users/stomita","html_url":"https://github.com/stomita","followers_url":"https://api.github.com/users/stomita/followers","following_url":"https://api.github.com/users/stomita/following{/other_user}","gists_url":"https://api.github.com/users/stomita/gists{/gist_id}","starred_url":"https://api.github.com/users/stomita/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stomita/subscriptions","organizations_url":"https://api.github.com/users/stomita/orgs","repos_url":"https://api.github.com/users/stomita/repos","events_url":"https://api.github.com/users/stomita/events{/privacy}","received_events_url":"https://api.github.com/users/stomita/received_events","type":"User","site_admin":false},"created_at":"2016-04-21T00:34:51Z","updated_at":"2016-04-21T00:34:51Z","body":"Actually the historical reason. At that time we couldn't find the satisfying CSV parser lib in npm so implemented it (I remember some parser has a problem during dealing with CJK text). I'm not sure if fast-csv resolves the problem or not but worth to try.\r\n\r\n> JSForce waits for all records to be returned and then parses the CSV rather than doing it in a streaming-fashion, \r\n\r\nYes, this is true, and this is also why we selected to implement our own CSV parser instead of using existing parsers (at that time there was no good streaming parsers I could find), but we didn't have a time to fully implement it. Now it seems the fast-csv has the feature so we might think of it."}}