csv

Fast, flexible CSV reading and writing for Rust, with Serde support

Library
Cargo
v1.4.0
1,966 stars
Unlicense

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
50 /100 Fair
Development Activity 24
Maintenance 4
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
82 /100 Excellent
Architecture 84
Code Quality 85
Innovation 75
Learning Curve 82

The csv crate is BurntSushi’s fast CSV parser/writer for Rust, offering both a convenient, allocation-friendly high-level API and a low-level, allocation-free csv-core layer for performance-critical or no_std contexts. It handles the messy realities of real-world CSV — custom delimiters, quoting, variable record lengths, and encoding edge cases — while integrating directly with Serde so CSV rows can be deserialized straight into typed structs (and serialized back out) with minimal boilerplate.

The repository ships as three crates (csv, csv-core, csv-index) plus an extensive tutorial and cookbook built into the docs, reflecting its long history as one of the most widely relied-upon data-parsing crates in the Rust ecosystem.

What You Get

  • High-level Reader/Writer types for parsing and generating CSV from files, byte slices, or any io::Read/io::Write
  • First-class Serde integration for deserializing CSV rows directly into typed structs and serializing structs back to CSV
  • Support for custom delimiters, quoting styles, flexible record lengths, and both StringRecord/ByteRecord (valid-UTF-8 vs raw-bytes) row types
  • A separate, allocation-free csv-core crate for no_std or performance-critical parsing without the high-level convenience layer
  • A built-in tutorial and cookbook (src/tutorial.rs, src/cookbook.rs) with runnable examples for common read/write/performance patterns

Common Use Cases

  • Loading CSV data exports (analytics, financial, log data) directly into typed Rust structs via Serde for further processing
  • Streaming very large CSV files without loading them entirely into memory, using the low-level csv-core API
  • Writing structured data (reports, batch job output) out to CSV for downstream consumption by spreadsheets or other tools
  • Handling messy real-world CSV variants (custom delimiters, inconsistent quoting, ragged rows) that stricter parsers reject

Under The Hood

Architecture - The csv crate wraps the csv-core crate’s allocation-free, no_std-compatible parsing state machine with a buffered, allocating Reader/Writer layer; StringRecord/ByteRecord (src/string_record.rs, src/byte_record.rs) represent a parsed row either as validated UTF-8 or raw bytes, and src/deserializer.rs/src/serializer.rs bridge those records to/from Serde’s Deserialize/Serialize traits so structs can be read or written directly; csv-index builds on top of csv to provide indexed/random-access reads over large CSV files.

Tech Stack - Pure Rust across three workspace crates (csv, csv-core, csv-index), dual-licensed MIT/Unlicense, with benches/bench.rs for performance regression tracking and a CI pipeline (ci/script.sh) that runs the full test and benchmark suite; the crate deliberately avoids unnecessary dependencies to keep compile times and binary size low.

Code Quality - tests/tests.rs plus embedded doc-tests throughout src/tutorial.rs and src/cookbook.rs mean the extensive documentation examples are themselves compiled and checked as part of the test suite, preventing doc drift; the split between StringRecord and ByteRecord is a deliberate design choice to handle non-UTF-8 CSV data without panicking, reflecting attention to real-world data quality issues.

API Design - The crate is unusually well-documented for a Rust library, with an in-crate tutorial that walks from basic reading through Serde integration to performance tuning (allocation reuse, csv-core fallback), which substantially lowers the learning curve for a domain (CSV parsing) that has many easy-to-miss edge cases.

Used by 19 apps in this directory

Rust
63%
MIT

PostgresML

AI Development · Databases

6,823

Run ML training and LLM inference natively inside PostgreSQL with GPU acceleration — no data movement required.

View details
51
Repo Health
76
Technical
64
Dependency
Built with
Rust 63%
JavaScript 11%
Updated 1 years ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated today
Rust
90%
Apache 2.0

Qdrant

AI Development · Databases · Search

35,220

Open-source vector database and search engine built in Rust for production-grade AI applications — from semantic search to RAG pipelines and recommendation systems.

View details
92
Repo Health
87
Technical
62
Dependency
Built with
Rust 90%
Updated yesterday
Rust
98%

Stalwart

Collaboration

15,268

All-in-one secure mail and collaboration server covering IMAP, JMAP, SMTP, CalDAV, CardDAV, and WebDAV in a single memory-safe Rust binary.

View details
88
Repo Health
81
Technical
65
Dependency
Built with
Rust 98%
Updated 4 days ago
TypeScript
67%
Apache 2.0

tabularis

Databases · Developer Tools

5,270

Open-source desktop SQL workspace with built-in PostgreSQL, MySQL, and SQLite drivers, SQL notebooks, a visual query builder, and a built-in MCP server for AI agents like Claude and Cursor.

View details
84
Repo Health
89
Technical
66
Dependency
Built with
TypeScript 67%
Rust 31%
Updated today
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated yesterday
TypeScript
68%
AGPL 3.0

Tolaria

Note Taking

20,161

A free, open-source, local-first desktop app for managing markdown knowledge bases on macOS, Windows, and Linux — for second brains, company docs, or AI assistant memory and procedures.

View details
84
Repo Health
71
Technical
68
Dependency
Built with
TypeScript 68%
HTML 15%
Updated today
Rust
71%
MIT

Trieve

AI Development · Developer Tools · Search

2,721

All-in-one self-hostable platform for hybrid search, RAG, recommendations, and analytics built on Rust and Qdrant.

View details
42
Repo Health
74
Technical
65
Dependency
Built with
Rust 71%
Updated 9 months ago
Rust
50%
Apache 2.0

Vibe Kanban

AI Agents · AI Code Assistants · Project Management

28,441

A kanban board for planning work and dispatching Claude Code, Codex, Gemini CLI, and eight other coding agents into isolated git worktrees, then reviewing and merging their diffs from one UI.

View details
72
Repo Health
75
Technical
63
Dependency
Built with
Rust 50%
TypeScript 46%
Updated 1 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers