Skip to content

overview getting started

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

Getting started

This page lists the local setup and validation commands used by CSV Align. The source of truth for these commands is README.md, AGENTS.md, Cargo.toml, frontend/package.json, and src-tauri/tauri.conf.json.

Prerequisites

Tool Expected use
Rust 1.85+ Root library, local Axum server, and Tauri wrapper. The crate uses edition 2024 in Cargo.toml.
Node.js 22+ and npm Frontend install, tests, lint, and build from frontend/package.json.
Tauri CLI 2.11.3 Desktop development and packaging, installed with cargo install tauri-cli --locked --version "2.11.3".
Linux desktop dependencies WebKitGTK 4.1 and related packages for Linux Tauri builds, documented in .github/workflows/ci.yml.

Install dependencies

cd frontend
npm install
cd ..

frontend/package-lock.json pins the frontend dependency graph. CI uses npm ci in .github/workflows/ci.yml.

Run the local web app

cd frontend && npm run build
cd ..
cargo run

cargo run starts src/main.rs on http://127.0.0.1:3001 and expects frontend/dist to already exist. src/api/app.rs resolves that directory with frontend_dist_path().

Run the desktop app

cargo install tauri-cli --locked --version "2.11.3"
cargo tauri dev

src-tauri/tauri.conf.json runs cd frontend && npm run dev before desktop dev, points the dev window to http://localhost:5173, and builds frontend assets through scripts/build_frontend_for_tauri.sh for packaged builds.

Validation commands

Scope Command
Root Rust cargo fmt --check && cargo test && cargo clippy -- -D warnings
Tauri wrapper cd src-tauri && cargo test && cargo fmt --check && cargo clippy -- -D warnings
Frontend cd frontend && npm test && npm run lint && npm run build
Release metadata python3 scripts/check_release_metadata.py

CI runs these in .github/workflows/ci.yml, with path filters that skip full validation for docs-only changes. Test strategy details are in testing.

Common first edits

  • Backend workflow changes: start with src/backend/workflow.rs, then add or update integration tests under tests/.
  • Comparison semantics: start with src/comparison/engine.rs, src/comparison/rows.rs, and src/comparison/value_compare.rs.
  • Frontend workflow changes: start with frontend/src/hooks/useComparisonWorkflow.reducer.ts and frontend/src/hooks/useComparisonWorkflow.ts.
  • Desktop command changes: update src-tauri/src/commands.rs, src-tauri/src/main.rs, and frontend/src/services/tauriCommands.ts together.

See tooling for build scripts and release helpers.

Clone this wiki locally