Skip to content

overview getting started

Douwe de Vries edited this page Jul 1, 2026 · 1 revision

Getting started

Development uses Node for the React/Vite frontend, Rust for the workspace crates, and Tauri for the desktop runtime. The canonical scripts live in package.json and frontend/package.json.

Prerequisites

Requirement Notes
Rust stable The workspace is defined in Cargo.toml with Rust edition 2024.
Node.js 22.13 or newer The root and frontend packages declare this floor in package.json and frontend/package.json. CI currently runs Node 26 in .github/workflows/ci.yml.
Frontend dependencies Install with npm ci --prefix frontend.
Playwright Chromium Needed for npm run frontend:e2e and npm run frontend:a11y; install with cd frontend && npx playwright install chromium.
Platform Tauri dependencies Linux builds need WebKitGTK and AppIndicator packages as shown in .github/workflows/ci.yml. macOS release builds need signing and notarization inputs described in docs/releasing.md.

Install dependencies

npm ci --prefix frontend

The root package does not have its own lockfile-driven app dependency set. Most UI dependencies are under frontend/package-lock.json.

Run the desktop app

npm run tauri:dev

This command enters src-tauri and runs cargo tauri dev. Tauri starts the frontend through the beforeDevCommand configured in src-tauri/tauri.conf.json, which runs cd frontend && npm run dev against Vite's http://localhost:5173 dev server.

Fast local checks

Use these before changing behavior:

npm run typecheck
npm run lint
npm run test
npm run fmt

The scripts expand as follows:

  • npm run typecheck builds the frontend and runs cargo check --workspace.
  • npm run lint runs frontend lint/build and Rust clippy with -D warnings.
  • npm run test runs contract checks, frontend tests, frontend build, and cargo test --workspace.
  • npm run fmt runs cargo fmt --all --check.

Broader gates

The release-oriented checks are listed in README.md and docs/releasing.md:

npm run deadcode:required
npm run docs:check
npm run release:check
npm run tauri:prebuilt:check
npm run artifacts:rust:check
npm run linux:package-manager:check
npm run frontend:e2e
npm run frontend:a11y
npm run frontend:audit
npm run cargo:audit
node scripts/rust-smoke.mjs

Run Linux packaging checks on Linux or in CI. docs/releasing.md notes that npm run linux:package-manager:check validates .deb, .rpm, APT metadata, and the installer path.

Useful entry points

Task Start with
Change a workflow screen frontend/src/components/workflow/AnonymizerWorkflowView.tsx, frontend/src/components/PasteDataWorkflowView.tsx, frontend/src/components/QuickDataTypeWorkflowView.tsx
Add or change a Tauri command src-tauri/src/tauri_command_list.rs, src-tauri/src/commands/csv.rs, frontend/src/tauri.ts
Change detection behavior crates/csv-anonymizer-core/src/detection.rs, crates/csv-anonymizer-core/src/detection/header_taxonomy.json, crates/csv-anonymizer-core/src/detection/tests
Change transformation output crates/csv-anonymizer-core/src/strategies/mod.rs, crates/csv-anonymizer-core/src/strategies/state.rs
Change privacy report data crates/csv-anonymizer-core/src/release_report.rs, frontend/src/components/privacy-report
Change release packaging docs/releasing.md, scripts/check-release-metadata.mjs, .github/workflows/release.yml

For workflow-specific details, continue with Development workflow and Testing.

Clone this wiki locally