-
Notifications
You must be signed in to change notification settings - Fork 0
Home
CSV Anonymizer is a local-first desktop app for reducing sensitive CSV and pasted-data exposure before a file or sample leaves a machine. The product combines a React/Vite frontend, a Tauri command shell, and a Rust anonymization core, with optional Smart replacement through a local Ollama runtime.
The app detects likely personal or sensitive fields, lets the user review selected columns, previews replacements, and writes protected output while preserving the input shape where possible. The main product modes are wired in frontend/src/App.tsx:
- CSV file for streaming CSV transformation from disk.
- Paste sample for CSV, JSON, XML, YAML, plain text, and log snippets up to the configured paste limit.
- Quick by data type for generating protected sample values without first providing source data.
The Rust service in crates/csv-anonymizer-core/src/service.rs owns CSV analysis, preview, preflight checks, and full-file anonymization. Direct pasted and quick workflows live under crates/csv-anonymizer-core/src/direct_input/. Tauri commands in src-tauri/src/commands/csv.rs expose those operations to the frontend through wrappers in frontend/src/tauri.ts.
| Topic | Start here |
|---|---|
| Repository overview video | Watch the MP4 |
| High-level architecture | Architecture |
| Local setup and checks | Getting started |
| Terms used by the app | Glossary |
| CSV transformation flow | CSV file workflow |
| Smart replacement | Local AI Smart replacement |
| Tauri command boundary | Tauri commands |
| Release and packaging | Deployment |
| Path | Purpose |
|---|---|
frontend/src |
React UI, hooks, Tauri invoke wrappers, shared types, and styles |
src-tauri/src |
Tauri desktop shell, command handlers, settings, file grants, background jobs, and Ollama integration |
crates/csv-anonymizer-core/src |
Detection, CSV IO, transformation strategies, privacy reports, direct-input workflows, and public DTOs |
crates/csv-anonymizer-app/src |
Lightweight CLI and smoke-test harness for the Rust core |
scripts |
Release, packaging, metadata, contract, audit, and smoke-test tooling |
.github/workflows |
CI, release, and scheduled dead-code/dependency scanning |
docs |
Design notes, release notes, migration status, and quality assessments |
The default detector and transformer run locally in Rust. Smart replacement is optional and sends selected values to the loopback Ollama endpoint configured in src-tauri/src/local_ai/mod.rs, not to a hosted API. The output is transformed source data, not a formal anonymity guarantee, so the preview and privacy report are part of the release decision rather than decoration.
Generated by Factory