For a library for parsing csv in Rust, the first results are burntsushi/rust-csv (This library is the standard, high-performance choice for CSV processing in Rust, offering a robust streaming API, type-safe deserialization via Serde, and comprehensive support for both reading and writing data), geal/nom (This is a general-purpose parser combinator framework used to build custom parsers rather than a specialized library for handling CSV data formats) and zesterer/chumsky (Chumsky is a general-purpose parser combinator library for building custom grammars rather than a specialized tool for parsing and writing CSV data files). rust-bakery/nom and pest-parser/pest round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best rust csv libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
This library is the standard, high-performance choice for CSV processing in Rust, offering a robust streaming API, type-safe deserialization via Serde, and comprehensive support for both reading and writing data.
nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an abstract syntax tree generator and a bit-level binary parser, allowing users to construct structured data by combining small, reusable parsing functions. The framework provides specialized support for zero-copy binary parsing, extracting data as slices from raw byte arrays to avoid memory allocations. It also includes a streaming data parser capable of processing partial input chunks from networks or files and signaling when additional input is required. The project covers a b
This is a general-purpose parser combinator framework used to build custom parsers rather than a specialized library for handling CSV data formats.
Chumsky is a parser combinator library used to build high-performance parsers by composing small parsing functions into complex grammars. It provides multiple parsing engines, including recursive descent and precedence-climbing implementations for resolving the order of operations in mathematical and logical expressions. The library is distinguished by its zero-copy text parsing, which minimizes memory allocations to increase throughput, and its ability to run without a standard library for use in embedded or resource-constrained environments. It also features an error-recovering parser that
Chumsky is a general-purpose parser combinator library for building custom grammars rather than a specialized tool for parsing and writing CSV data files.
nom is a parser combinator framework for Rust used to build complex parsers by combining small, reusable parsing functions. It functions as a zero-copy parsing tool that minimizes memory overhead by returning slices of the original input instead of allocating new memory. The framework is designed for diverse data formats, serving as a binary data parser with configurable endianness and a bitstream processing library capable of extracting values of arbitrary bit length. It also functions as a streaming data parser that can process data arriving in chunks and signal when additional input is req
This is a general-purpose parser combinator framework used to build custom parsers rather than a specialized library for CSV data processing.
Pest is a Rust parsing library and automatic parser generator that transforms formal grammar definitions into functional parsers. It specializes in Parsing Expression Grammar to recognize and structure complex text patterns, providing a system for context-free grammar parsing. The library implements zero-copy tokenization and static grammar compilation to reduce runtime overhead. It supports no-std runtime compatibility, allowing the parser to be compiled for embedded or bare-metal environments where a standard library is unavailable. The project covers a range of parsing capabilities, inclu
This is a general-purpose parser generator for formal grammars rather than a specialized library for CSV data processing, meaning you would have to build the CSV logic yourself using its tools.
This is a Rust serialization library for converting data structures to and from JSON strings and byte streams. It is built as a framework within the Serde ecosystem, providing both a strongly typed parser for compile-time safety and a recursive value tree for manipulating JSON data without a predefined schema. The project supports both typed and untyped processing. It can map JSON data into specific Rust types for schema conformity or parse input into a flexible, schemaless representation. It also includes macro-based utilities for the dynamic construction of JSON objects.
This is a JSON serialization framework rather than a CSV processing library, though it provides the underlying Serde traits often used to implement type-safe deserialization for CSV data.
DuckDB is an in-process analytical database engine designed to run directly within an application process. As a zero-dependency, embedded system, it provides enterprise-grade SQL data processing capabilities without the overhead of managing a dedicated database server. It is built to handle complex analytical and aggregation tasks by storing and retrieving information in columns, allowing for high-performance relational data manipulation. The engine distinguishes itself through a columnar vectorized execution model that maximizes CPU cache efficiency during query operations. It employs adapti
DuckDB is an embedded analytical database engine that can ingest and query CSV files, but it is a full SQL database system rather than a specialized library for parsing and manipulating CSV data in Rust.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| burntsushi/rust-csv | 1.9K | Rust | unlicense | |
| geal/nom | 10.4K | Rust | MIT | |
| zesterer/chumsky |
| 4.5K |
| Rust |
| MIT |
| rust-bakery/nom | 10.4K | Rust | MIT |
| pest-parser/pest | 5.4K | Rust | Apache-2.0 |
| serde-rs/json | 5.6K | Rust | Apache-2.0 |
| duckdb/duckdb | 38.8K | C++ | MIT |