Skip to content

overview

Douwe de Vries edited this page Jul 2, 2026 · 3 revisions

CSV Align

CSV Align is a Rust, Tauri, and React application for comparing two local CSV files. It loads both files, lets users choose row keys and comparison columns, highlights differences, and exports results or saved snapshots.

What this repo contains

Area Purpose
src/ Shared Rust library and local web server. The crate exports api, backend, comparison, data, and presentation from src/lib.rs.
frontend/ React 19 and TypeScript UI for file selection, mapping, normalization rules, result review, and browser/Tauri transport switching.
src-tauri/ Tauri 2 desktop wrapper. Commands in src-tauri/src/commands.rs call the same backend workflows used by Axum.
tests/ Rust integration tests for public workflows, API contracts, persistence, packaging, and transport parity.
.github/workflows/ CI and release workflows for Rust, frontend, Tauri, Linux package validation, and releases.
scripts/ Release and packaging helpers for APT, RPM, Linux metadata validation, and version checks.

User workflow

  1. Load File A and File B.
  2. Pick row-key columns that identify matching rows.
  3. Pick comparison-column pairs manually or use auto-pair for confident matches.
  4. Apply comparison rules such as null handling, case-insensitive text, numeric equivalence, date normalization, decimal rounding, or flexible row-key matching.
  5. Review matches, mismatches, missing rows, ignored rows, and duplicates.
  6. Export CSV/HTML results, save pair-order setup files, or save a comparison snapshot.

The high-level request path is documented in architecture. Runtime entry points are covered under applications, and deeper capabilities are covered under features.

Key source files

File Purpose
README.md Product summary, installation notes, quick start, and maintainer notes.
src/main.rs Local web server entry point on 127.0.0.1:3001.
src/lib.rs Shared Rust crate module boundary.
src-tauri/src/main.rs Desktop entry point and Tauri command registration.
frontend/src/App.tsx React step shell for selection, configuration, and results.
frontend/src/hooks/useComparisonWorkflow.ts Top-level UI workflow hook.

Where to start

Clone this wiki locally