Skip to content

api tauri commands

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

Tauri Commands

Active contributors: Douwe de Vries

Tauri commands are the desktop-mode API surface. Command names are declared for the frontend in /Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts, registered in /Users/vriesd/projects/csv-align/src-tauri/src/main.rs, and implemented in /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs.

Command table

Frontend constant Command name Arguments Return behavior Source paths
createSession create_session None SessionResponse /Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/backend/requests.rs
deleteSession delete_session sessionId No value; missing sessions are ignored by the command caller. /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs
loadCsvBytes load_csv_bytes sessionId, fileLetter, fileName, fileBytes FileLoadResponse /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/presentation/responses.rs
suggestMappings suggest_mappings sessionId, request SuggestMappingsResponse /Users/vriesd/projects/csv-align/frontend/src/types/api.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/presentation/responses.rs
compare compare sessionId, request CompareResponse /Users/vriesd/projects/csv-align/frontend/src/types/api.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/presentation/responses.rs
exportResults export_results sessionId Option<()>; None means the save dialog was canceled. /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs
exportResultsHtml export_results_html htmlContents Option<()>; None means the save dialog was canceled. /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs
savePairOrder save_pair_order sessionId, selection Option<()>; writes a text file when a path is selected. /Users/vriesd/projects/csv-align/frontend/src/types/api.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/backend/requests.rs
loadPairOrder load_pair_order sessionId Option<LoadPairOrderResponse>; None means the open dialog was canceled. /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/backend/requests.rs
saveComparisonSnapshot save_comparison_snapshot sessionId Option<()>; writes snapshot JSON when a path is selected. /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs
loadComparisonSnapshot load_comparison_snapshot sessionId Option<LoadComparisonSnapshotResponse>; None means the open dialog was canceled. /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs, /Users/vriesd/projects/csv-align/src/backend/requests.rs

Dialog behavior

Desktop dialogs are provided by tauri-plugin-dialog and granted through /Users/vriesd/projects/csv-align/src-tauri/capabilities/default.json.

Command Dialog type Default file name Filters
export_results Save comparison-results.csv CSV Files, csv
export_results_html Save comparison-results.html HTML Files, html
save_pair_order Save pair-order.txt Text Files, txt
load_pair_order Open Not applicable Text Files, txt
save_comparison_snapshot Save comparison-snapshot.json JSON Files, json
load_comparison_snapshot Open Not applicable JSON Files, json

CSV loading is not a native-open-dialog command in production. In desktop mode, the frontend reads the selected File, validates the 25 MiB limit in /Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts, and sends bytes to load_csv_bytes. Desktop path loading is explicitly rejected in that frontend service, and the path-based load_csv command in /Users/vriesd/projects/csv-align/src-tauri/src/commands.rs is compiled only for tests.

Registration

/Users/vriesd/projects/csv-align/src-tauri/src/main.rs uses the tauri_commands! macro to keep the command list in one place before expanding it into tauri::generate_handler![...]. Adding or renaming a command requires updating the frontend constants, the Rust handler list, and the command implementation together.

Related pages

Key source files

File Purpose
/Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts Frontend command-name constants.
/Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts Desktop-mode invoke(...) calls, file byte reads, and runtime-specific return handling.
/Users/vriesd/projects/csv-align/src-tauri/src/main.rs Tauri command registration through tauri::generate_handler![...].
/Users/vriesd/projects/csv-align/src-tauri/src/commands.rs Command implementations, native dialog helpers, file writes, and command return types.
/Users/vriesd/projects/csv-align/src-tauri/capabilities/default.json Permissions that allow dialog open/save operations.
/Users/vriesd/projects/csv-align/src/backend/requests.rs Shared request DTOs used by command payloads.
/Users/vriesd/projects/csv-align/src/presentation/responses.rs Shared response DTOs returned by commands.

Clone this wiki locally