A fast and flexible CSV reader and writer for Rust, with support for Serde.
Dual-licensed under MIT or the UNLICENSE.
https://docs.rs/csv
If you're new to Rust, the tutorial is a good place to start.
Add this to your Cargo.toml
:
toml
[dependencies]
csv = "1"
and this to your crate root:
rust
extern crate csv;
This example shows how to read CSV data from stdin and print each record to stdout.
There are more examples in the cookbook.
```rust extern crate csv;
use std::error::Error; use std::io; use std::process;
fn example() -> Result<(), Box
fn main() { if let Err(err) = example() { println!("error running example: {}", err); process::exit(1); } } ```
The above example can be run like so:
ignore
$ git clone git://github.com/BurntSushi/rust-csv
$ cd rust-csv
$ cargo run --example cookbook-read-basic < examples/data/smallpop.csv
This example shows how to read CSV data from stdin into your own custom struct. By default, the member names of the struct are matched with the values in the header record of your CSV data.
```rust extern crate csv;
extern crate serde_derive;
use std::error::Error; use std::io; use std::process;
struct Record {
city: String,
region: String,
country: String,
population: Option
fn example() -> Result<(), Box
fn main() { if let Err(err) = example() { println!("error running example: {}", err); process::exit(1); } } ```
The above example can be run like so:
ignore
$ git clone git://github.com/BurntSushi/rust-csv
$ cd rust-csv
$ cargo run --example cookbook-read-serde < examples/data/smallpop.csv