OS
osiegmar/FastCSV
Fast, lightweight, and RFC 4180 compliant CSV library for Java. Zero dependencies, ~90 KiB. Trusted by Apache NiFi, JUnit, and Neo4j.
FastCSV: fast, lightweight, and easy to use — the production-proven CSV library for Java.
It’s the most-starred CSV library for Java and trusted by leading open-source projects such as Apache NiFi, JUnit and Neo4j.
Features
Here are the top reasons to choose FastCSV — see fastcsv.org for the full feature list.
- Fast CSV processing — optimized for high-speed reading and writing
- Tiny footprint — only ~90 KiB, with zero runtime dependencies
- Developer-friendly API — clean, intuitive, and easy to integrate
- Well-documented — Quickstart guides and complete Javadoc
- High test coverage — including mutation testing for reliability
- RFC 4180 compliant — handles edge cases correctly
- Robust & maintainable — uses SpotBugs, PMD, Error Prone, NullAway, and Checkstyle to ensure code quality; never returns null unexpectedly
- Secure — fuzz-tested via OSS-Fuzz and following OpenSSF best practices
- Production-proven — trusted by open-source projects like JUnit
- Java 17+, Android 34+ compatible — including GraalVM Native Image and OSGi
Performance

Based on the Java CSV library benchmark suite.
Quick Start
Writing CSV
try (CsvWriter csv = CsvWriter.builder().build(Path.of("output.csv"))) {
csv
.writeRecord("header 1", "header 2")
.writeRecord("value 1", "value 2");
}Reading CSV
try (CsvReader<CsvRecord> csv = CsvReader.builder().ofCsvRecord(Path.of("input.csv"))) {
csv.forEach(IO::println);
}For more examples and detailed documentation, visit fastcsv.org.
If you find FastCSV useful, consider leaving a star!
License
On this page
Languages
Java100.0%Go Template0.0%
MIT License
Created June 22, 2014
Updated March 8, 2026