Skip to content

Development

Terminal window
git clone https://github.com/helgesverre/sql-splitter
cd sql-splitter
cargo build
Terminal window
cargo run -- split test.sql -o output/
Terminal window
cargo build --release

The binary will be at target/release/sql-splitter.

Terminal window
RUSTFLAGS="-C target-cpu=native" cargo build --release
  • Directorysql-splitter/
    • Directorysrc/
      • main.rs Entry point
      • Directorycmd/ CLI commands
        • split.rs
        • merge.rs
        • analyze.rs
        • …
      • Directoryparser/ SQL parser
        • …
      • Directorysplitter/ Split logic
        • …
      • Directorymerger/ Merge logic
        • …
      • Directoryanalyzer/ Analysis logic
        • …
      • Directoryconvert/ Dialect conversion
        • …
      • Directoryvalidate/ Validation logic
        • …
      • Directorysample/ Sampling logic
        • …
      • Directoryshard/ Sharding logic
        • …
      • Directorydiffer/ Diff logic
        • …
      • Directoryredactor/ Redaction logic
        • …
      • Directorygraph/ Graph/ERD logic
        • …
      • Directoryduckdb/ DuckDB integration
        • …
      • Directorywriter/ Output writers
        • …
    • Directorytests/
      • Directoryfixtures/ Test SQL files
        • …
      • *.rs Test modules
    • Directoryman/ Man pages
      • …
    • Directorywebsite/ Documentation site
      • …
    • Cargo.toml
  • Use cargo fmt before committing
  • Run cargo clippy for lints
  • Follow Rust idioms
Terminal window
just build # Debug build
just release # Release build
just test # Run tests
just install # Install binary + completions + man pages
just clean # Clean build artifacts