CSV++
An extension to RFC 4180 that adds arrays and nested structures to CSV — while remaining fully compatible with every existing CSV parser.
Where CSV++ fits in
The sweet spot between flat CSV and fully hierarchical formats — bringing structure without sacrificing simplicity or compatibility.
Built for real-world data
The CSV format you already know, extended to handle the complexity of modern datasets.
Backward Compatible
Standard CSV parsers read CSV++ files without errors. Your existing toolchain works from day one.
Hierarchical Data
Arrays and nested structures compose recursively. Represent real-world data without JSON's verbosity.
Self-Documenting
Structure is declared in column headers — files are human-readable with no external schema needed.
Simple Syntax
field[] for arrays, field^(a^b) for structures. Declarative and intuitive.
Bandwidth Efficient
Columnar format avoids repeating field names in every record. Smaller files than JSON or XML.
IETF Standardized
Formally specified as an IETF Internet-Draft — interoperable, unambiguous, and implementation-ready.
See it in action
Multiple phone numbers and structured addresses in a single, readable CSV file.
# Column headers declare the structure of each field id,name,phones[],address^(street^city^state^zip) 1,John Smith,555-1234~555-5678,123 Main St^Los Angeles^CA^90210 2,Jane Doe,555-4444,789 Pine St^Boston^MA^02101
phones[] declares a tilde-delimited array field.
address^(…) declares a caret-separated structured field.
Standard CSV parsers read this file without modification.