# csvparser **Repository Path**: mirrors_minio/csvparser ## Basic Information - **Project Name**: csvparser - **Description**: Package csv reads and writes comma-separated values (CSV) files. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-29 - **Last Updated**: 2025-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # csvparser ``` // Package csv reads and writes comma-separated values (CSV) files. // There are many kinds of CSV files; this package supports the format // described in RFC 4180. // // A csv file contains zero or more records of one or more fields per record. // Each record is separated by the newline character. The final record may // optionally be followed by a newline character. // // field1,field2,field3 // // White space is considered part of a field. // // Carriage returns before newline characters are silently removed. // // Blank lines are ignored. A line with only whitespace characters (excluding // the ending newline character) is not considered a blank line. // // Fields which start and stop with the quote character " are called // quoted-fields. The beginning and ending quote are not part of the // field. // // The source: // // normal string,"quoted-field" // // results in the fields // // {`normal string`, `quoted-field`} // // Within a quoted-field a quote character followed by a second quote // character is considered a single quote. // // "the ""word"" is true","a ""quoted-field""" // // results in // // {`the "word" is true`, `a "quoted-field"`} // // Newlines and commas may be included in a quoted-field // // "Multi-line // field","comma is ," // // results in // // {`Multi-line // field`, `comma is ,`} // ``` This package is forked from encoding/csv from Go upstream, original package is under feature freeze and we had to expand the scope of CSV RFC for S3 Select CSV support. ``` // Modified to be used with MinIO. Main modifications include // - Configurable 'quote' parameter // - Performance improvements // benchmark old ns/op new ns/op delta // BenchmarkRead-8 2807 2189 -22.02% // BenchmarkReadWithFieldsPerRecord-8 2802 2179 -22.23% // BenchmarkReadWithoutFieldsPerRecord-8 2824 2181 -22.77% // BenchmarkReadLargeFields-8 3584 3371 -5.94% // BenchmarkReadReuseRecord-8 2044 1480 -27.59% // BenchmarkReadReuseRecordWithFieldsPerRecord-8 2056 1483 -27.87% // BenchmarkReadReuseRecordWithoutFieldsPerRecord-8 2047 1482 -27.60% // BenchmarkReadReuseRecordLargeFields-8 2777 2594 -6.59% ```