Sheeter
Convert data files between formats from the command line.
Eight formats, fifty-six routes. CSV, TSV, JSON, YAML, XML, TOML, XLSX, SQL — any direction, through a single canonical hub.
Install
cargo install sheeter-engine
The installed binary is sheeter.
Usage
sheeter convert --from <FMT> --to <FMT> [--sheet NAME] [--dialect NAME] <input> <output>
Formats: csv, tsv, json, yaml, xml, toml, xlsx, sql.
# SQL INSERT statements → CSV
sheeter convert --from sql --to csv data.sql data.csv
# SQL with PostgreSQL dialect
sheeter convert --from sql --to json --dialect postgresql data.sql data.json
# CSV → SQL (table name from filename)
sheeter convert --from csv --to sql users.csv users.sql
# writes INSERT INTO "users" ...
# Multi-table SQL → one CSV per table
sheeter convert --from sql --to csv dump.sql out.csv
# writes out.users.csv, out.orders.csv, ...
How it works
Every reader produces a CanonicalValue; every writer consumes one. Adding
a new format costs one reader and one writer, not N-1 pairwise converters.
Versioning
This project follows Semantic Versioning 2.0.0. Changelog follows Keep a Changelog 1.1.0. Commit messages follow Conventional Commits 1.0.0.