Skip to content

Design Goals

The development of FastCSV is guided by a set of design goals.

Performance

FastCSV is designed to be blazing fast. It is optimized for reading and writing CSV files as quickly as possible.

Benchmark

Lightweight

FastCSV is designed to be lightweight. It has no external dependencies and ensures a small memory footprint.

The Jar-File of version 3.2.0 has a size of only barely above 64 KiB.

Compliant

FastCSV is designed to comply with the CSV specification RFC 4180.

Its very high test coverage ensures that it adheres to the specification. See also the Java Csv Comparison Project on how FastCSV handles edge cases and how it compares to other libraries.

Simplicity

FastCSV is designed to be simple and intuitive. It provides a simple API that is easy to use and understand. See the Quickstart for a first impression.

Robustness

FastCSV is designed to be robust and reliable. Thoroughly tested, it ensures a high level of stability. PIT mutation testing is used to ensure the quality of the tests.

Security

FastCSV is designed to be secure.

We follow the Open Source Security Foundation (OpenSSF) Best Practices. See our Best Practices report for more information.

FastCSV is also part of the OSS-Fuzz project to ensure its security.

Documentation

FastCSV is designed to be well documented. It offers comprehensive documentation for all features.

This website along with the Javadoc provides detailed information on how to use the library.

Maintainability and Support

FastCSV is designed to be maintainable to ensure its longevity, continued development and support. Checkout our FAQ for more information on how to get help and how to contribute.

Spotbugs, PMD and Checkstyle are used to ensure the quality of the code.

Non-Goals

While flexibility and extensibility are important, they are not considered as design goals. They are only considered if they do not conflict with the design goals listed above.