+
+
+
+
+
+ Fast
+
+
Compiles classes on the fly for extremely fast performance.
+
+
+
+
+
+
+
+ Flexible
+
+
Conservative when writing, liberal when reading.
+
+
+
+
+
+
+
+ Easy to Use
+
+
+ Reading and writing is as simple as GetRecords<T>() and WriteRecords(records).
+ No configuration required.
+
+
+
+
+
+
+
+
+ Highly Configurable
+
+
Feature rich mapping and attribute systems to configure any type of CSV file to any type of class.
+
+
+
+
+
+
+
+ RFC 4180 Compliant
+
+
Adheres to the RFC 4180 standard to ensure compatibility across systems.
+
+
+
+
+
+
+
+ Linux Mode
+
+
+ Mode for common Linux/SerDe files where an escape character is used instead of RFC 4180's field quoting.
+
+
+
+
+
+
+
+
+ Graceful Fallback
+
+
When non-standard files are read, fallback will match MS Excel parsing.
+
+
+
+
+
+
+
+ Low Memory Usage
+
+
Reading records will yield results so only one record is in memory at a time.
+
+
+
+
+
+
+
+ Field Caching
+
+
+ Option to use field caching when there is repeated data in a CSV file. This will reduce memory
+ and speed up parsing time.
+
+
+
+
+
+
+
+
+ Run Anywhere
+
+
+ CsvHelper is built on .NET Standard 2.0 which allows it to run
+ almost everywhere.
+ Older versions of .NET are possible if needed.
+
+
+
+
+
+
+
+
+ Open Source
+
+
+ Many contributors have helped make CsvHelper the great library it is today.
+ Completely free for commercial use. Dual licensed under
+ MS-PL and
+ Apache 2.
+
+
+
Completely free for commercial use. Dual licensed. Choose which ever license suits your needs.
+
Want to contribute? Great! Here are a few guidelines.
+
+ -
+ If you want to do a feature, post an issue about the feature first. Some features are intentionally left out,
+ some features may already be in the works, or I may have some advice on how I think it should be done. I would
+ feel bad if time was spent on some code that won't be used.
+
+ -
+ If you want to do a bug fix, it might not be a bad idea to post about it too. I've had the same bug fixed by
+ multiple people at the same time before.
+
+ -
+ All code should have a unit test. If you make a feature, there should be significant tests around the feature.
+ If you do a bug fix, there should be a test specific to that bug so it doesn't happen again.
+
+ -
+ Pull requests should have a single commit. If you have multiple commits, squash them into a single commit before
+ requesting a pull.
+
+ -
+ When in Rome: Try and follow the code styling already in place. I use default Visual Studio Text Editor settings
+ but change tabs to Keep tabs.
+
+
+