GitShow/BurntSushi/rust-csv
BurntSushi

rust-csv

A CSV parser for Rust, with Serde support.

by BurntSushi
csvlibraryrustrust-library
Star on GitHubFork

Rust

1.9k stars247 forks58 contributorsQuiet · 8mo agoSince 2014Unlicense

Meet the team

See all 58 on GitHub →
BurntSushi
BurntSushi399 contributions
paolobarbolini
paolobarbolini5 contributions
brandonw
brandonw3 contributions
EvinRobertson
EvinRobertson2 contributions
fhartwig
fhartwig2 contributions
huonw
huonw2 contributions
igor-raits
igor-raits2 contributions
jturner314
jturner3142 contributions

Languages

View on GitHub →
Rust99.5%
Shell0.3%
Python0.2%

Commit activity

Last 12 weeks · 0 commits

Full graph →

Community health

3 of 6 standards met

Community profile →
42
✓README✓License○Contributing○Code of Conduct✓Issue Template○PR Template

Recent PRs & issues

Quiet · Last activity 8mo ago
See all on GitHub →
xc01
An overflow panic in Reader::read_byte_recordOpenIssue

Summary v1.4.0 can panic in debug builds due to unchecked addition in the call path: If and , this overflows and panics. Why this is report-worthy This panic is reachable from public APIs (, , , ). The function docs do not mention this panic condition. The operation currently uses unchecked instead of /error return. Public API reproducer Call chain 1. Reader::from_reader(...) 2. Reader::seek_raw(..., pos_with_byte_u64_max) 3. Reader::read_byte_record(...) 4. Internal read_byte_record_impl(...) 5. set_byte(byte + nin as u64) at src/reader.rs:1649 panics when nin > 0 Actual behavior Panic on integer overflow (debug builds). Expected behavior Either: + avoid panic via checked arithmetic and return an error, or + explicitly document panic preconditions in API docs. Suggested fix At src/reader.rs:1649, replace unchecked addition with checked handling, e.g.: + byte.checked_add(nin as u64) and map overflow to Error, + or saturating behavior if that matches crate semantics. Version + crate: csv + version: 1.4.0

xc01 · 3d ago
SAY-5
fix: respect QuoteStyle::Never for empty fieldsOpenPR

When writing an empty field with , the writer still produced instead of leaving it bare. The and methods in unconditionally wrote a pair of quote characters for empty fields without checking the configured quoting style. Added a guard so the empty-field quoting is skipped when the style is , and derived on to enable the comparison. Regression tests added in both and . Fixes #276.

SAY-5 · 2w ago
hniksic
Quotes included despite using QuoteStyle::NeverOpenIssue

The docs for say: This _never_ writes quotes, even if it would produce invalid CSV data. Based on that, I would expect the following program to output a line with followed by an empty line, followed by a line with : Expected output: But actual output is: Is there a way to prevent the writer from generating quotes? I am using csv 1.1.6.

hniksic · 1mo ago

Recent fixes

View closed PRs →
TheCrott
Add Fuzzing scriptMergedPR

This PR is to add fuzzing support, and I want to integrate into OSS-Fuzz. This is a free service by Google where they perform continuous fuzzing of open-source projects used by industry and with the only expectation that maintainers of the project will patch the bugs found by OSS-Fuzz. If you are interested in this, could you please provide me with an email address that will be receiving the bug reports that OSS-Fuzz find?

TheCrott · 1mo ago
weasel-lee
Test workflowMergedPR
weasel-lee · 4mo ago
weasel-lee
TestMergedPR
weasel-lee · 4mo ago
Structured data for AI agents

Repository: BurntSushi/rust-csv. Description: A CSV parser for Rust, with Serde support. Stars: 1945, Forks: 247. Primary language: Rust. Languages: Rust (99.5%), Shell (0.3%), Python (0.2%). License: Unlicense. Topics: csv, library, rust, rust-library. Open PRs: 35, open issues: 65. Last activity: 8mo ago. Community health: 42%. Top contributors: BurntSushi, paolobarbolini, brandonw, EvinRobertson, fhartwig, huonw, igor-raits, jturner314, thaliaarchi, timhabermaas and others.

·@ofershap

Replace github.com with gitshow.dev