5 unstable releases

Uses old Rust 2015

0.3.1 Mar 20, 2022
0.3.0 Mar 20, 2022
0.2.0 Mar 19, 2022
0.1.1 Mar 24, 2018
0.1.0 Mar 23, 2018

#1938 in Parser implementations

Download history 54/week @ 2023-12-05 34/week @ 2023-12-12 32/week @ 2023-12-19 44/week @ 2023-12-26 904/week @ 2024-01-02 383/week @ 2024-01-09 140/week @ 2024-01-16 127/week @ 2024-01-23 111/week @ 2024-01-30 110/week @ 2024-02-06 94/week @ 2024-02-13 156/week @ 2024-02-20 212/week @ 2024-02-27 136/week @ 2024-03-05 149/week @ 2024-03-12 251/week @ 2024-03-19

779 downloads per month
Used in 4 crates

MIT license

47KB
956 lines

CSV Sniffer

Build Status Documentation

This csv-sniffer crate provides methods to infer CSV file details (delimiter choice, quote character, number of fields, field data types, etc.). See the documentation for more details.

Setup

Add this to your Cargo.toml:

[dependencies]
csv-sniffer = "0.1"

and this to your crate root:

extern crate csv_sniffer;

Example

This example shows how to write a simple command-line tool for discovering the metadata of a CSV file:

extern crate csv_sniffer;

use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    if args.len() != 2 {
        eprintln!("Usage: {} <file>", args[0]);
        ::std::process::exit(1);
    }

    // sniff the path provided by the first argument
    match csv_sniffer::Sniffer::new().sniff_path(&args[1]) {
        Ok(metadata) => {
            println!("{}", metadata);
        },
        Err(err) => {
            eprintln!("ERROR: {}", err);
        }
    }
}

This example is provided as the primary binary for this crate. In the source directory, this can be run as:

$ cargo run -- tests/data/library-visitors.csv

Dependencies

~3.5–5MB
~77K SLoC