-
Notifications
You must be signed in to change notification settings - Fork 0
overview 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.
| 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. |
npm ci --prefix frontendThe root package does not have its own lockfile-driven app dependency set. Most UI dependencies are under frontend/package-lock.json.
npm run tauri:devThis 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.
Use these before changing behavior:
npm run typecheck
npm run lint
npm run test
npm run fmtThe scripts expand as follows:
-
npm run typecheckbuilds the frontend and runscargo check --workspace. -
npm run lintruns frontend lint/build and Rust clippy with-D warnings. -
npm run testruns contract checks, frontend tests, frontend build, andcargo test --workspace. -
npm run fmtrunscargo fmt --all --check.
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.mjsRun 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.
| 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.