qsv-sniffer
provides methods to infer CSV file metadata (delimiter choice, quote character,
number of fields, field names, field data types, etc.). See the documentation for more details.
Its a detached fork of csv-sniffer with these additional capabilities, detecting:
ℹ️ NOTE: This fork is optimized to support qsv, and its development will be primarily dictated by qsv's requirements. Please continue to use
csv-sniffer
if you want a general-purpose CSV sniffer.
cargo install qsv-sniffer
This will install a binary named sniff
.
Add this to your Cargo.toml
:
toml
[dependencies]
qsv-sniffer = "0.5"
and this to your crate root:
rust
use qsv_sniffer;
cli
- to build the sniff
binaryruntime-dispatch-simd
- enables detection of SIMD capabilities at runtime, which allows using the
SSE2 and AVX2 code paths (only works on Intel and AMD architectures. Ignored on other architectures).generic-simd
- enables architecture-agnostic SIMD capabilities, but only works with Rust nightly.The SIMD features are mutually exclusive and increase sampling performance.
This example shows how to write a simple command-line tool for discovering the metadata of a CSV file:
```norun use qsvsniffer;
use std::env;
fn main() {
let args: Vec
// sniff the path provided by the first argument
match qsv_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:
ignore
$ cargo run -- tests/data/library-visitors.csv