# 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](https://semver.org/spec/v2.0.0.html).
Changelog follows [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/).
Commit messages follow [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/).