csv
A high-quality CSV library. Encode and decode CSV strings, with stream support (one row per event), auto-detection, and Excel compatibility. The string must be comma (configurable) separated values.
8.0.0
826K downloads/mo
#400 most downloaded on pub.dev
close2/csv
What this package is like to depend on
Last release 5 months ago
19 Mar 2026
Release timing varies
gaps range from 9 days to 2.0 years
Most releases are documented
notes for 14 of 22 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
23 releases · first in 2014
4 releases in the last 12 months
see the full history below
Release timeline
23 releases · Oct 2014 to Mar 2026Releases
latest 23-
8.0.019 Mar 2026Release notes
Open source →Fix stream nesting issue (#77):
stream.transform(csv.decoder).toList()now correctly returnsList<List<dynamic>>instead ofList<List<List<dynamic>>>.Breaking changes:
CsvCodechas been renamed toCsv. A deprecatedCsvCodectypedef is provided for migration.Csvdoes not extenddart:convert'sCodec. UseasCodec()if you need aCodec(e.g., for.fuse()).CsvDecoderis now aStreamTransformerBase<String, List<dynamic>>instead of aConverter<String, List<List<dynamic>>>. Each stream event is a single row.CsvEncoderis now aStreamTransformerBase<List<dynamic>, String>instead of aConverter<List<List<dynamic>>, String>. Each stream event is a single row.csv.decoder.fuse(...)→ usecsv.asCodec().decoder.fuse(...)instead.
See the "The Codec Problem" section in the README for a detailed explanation.
-
7.2.003 Mar 2026Release notes
Open source →Document CsvRow map-like access and necessary casts. Add decodeWithHeaders() helper function.
-
7.1.010 Feb 2026 -
7.0.010 Feb 2026Release notes
Open source →Complete rewrite of the library, now compatible with
dart:convert. Automatic delimiter detection and BOM support. Optimized for performance and memory usage. If you need compatibility with the older API, please continue using version 6. -
6.0.026 Feb 2024Release notes
Open source →If inside an unquoted string, text-delimiters are ignored instead of swallowed.
This (partially?) fixes issue #70.
Example:"A B", "C, D"will now produce[["A B",' "C',' D"']]instead of[["A B",' C',' D']]. -
5.1.126 Oct 2023 -
5.1.017 Oct 2023Release notes
Open source →Implement feature request #29. It is now possible to specify a value for empty fields (CSV to List) and a value for
null(List to CSV). -
5.0.224 Apr 2023Release notes
Open source →fix bug #61 "Unexpected Error: The text end delimiter (") for the last field is missing."
thanks https://github.com/liam7800Improve nullsafety code.
-
5.0.118 Nov 2021Release notes
Open source →fix bug #26 "A value of type 'dynamic' can't be assigned to a variable of type 'String'."
thanks https://github.com/lil5 -
5.0.016 Mar 2021Release notes
Open source →nullsafety updating dependencies to released nullsafety version Removing unnecessary const and new keywords
Thanks to: https://github.com/arnaudelub
-
5.0.0-nullsafety.001 Feb 2021 pre-release -
4.1.031 Oct 2020Release notes
Open source →Add
returnStringoption to work around a major performance bug.
Thanks: @boukeversteegh -
4.0.305 Apr 2019 -
4.0.209 Mar 2019 -
4.0.117 Nov 2018 -
4.0.003 Jul 2018Nothing published for this version
-
3.3.003 Jul 2018Nothing published for this version
-
3.2.026 Jun 2018Nothing published for this version
-
3.1.215 Feb 2017Nothing published for this version
-
3.1.115 Jun 2016Nothing published for this version
-
3.0.101 Feb 2016Nothing published for this version
-
2.0.105 Oct 2014Nothing published for this version
-
2.0.005 Oct 2014Nothing published for this version