Rust + Tauri Standards
Strict, reusable standards for Rust/Tauri desktop applications.
When to Use
Use this skill when:
-
Writing Rust code in Tauri projects
-
Creating new Tauri commands
-
Separating SQL queries and prompts from Rust code
-
Enforcing one-thing-per-file discipline in Rust modules
Non-Negotiables (MUST)
-
One public symbol per file (function / type / trait).
-
No inline SQL strings in .rs files; use dedicated SQL files with include_str!() (e.g. src-tauri/sql/<area>/Xxx.sql ).
-
No inline LLM/AI prompts in .rs files; use dedicated prompt files with include_str!() (e.g. src-tauri/prompts/<area>/Xxx.prompt ).
-
When creating a Tauri command: (1) create command file, (2) register in invoke handler, (3) add to permissions allowlist.
Module Layout
-
src-tauri/src/services/ : external boundaries (IO, DB, network).
-
src-tauri/src/utils/ : pure logic (no IO).
-
src-tauri/src/models/ : domain types (one type per file).
-
No "misc" modules like helpers.rs or common.rs .
Rules
Language & Style
- rust-language-style
- Language & style (English-only, struct/enum, error types)
One Thing Per File
-
rust-one-thing-per-file
-
One thing per file (STRICT)
-
rust-module-manifests
-
Module manifests exception (mod.rs)
Module Layout
- rust-module-layout
- Module layout (STRICT) - services, utils, models
SQL Separation
- rust-sql-separation
- SQL separation (STRICT) - no inline SQL
Prompt Separation
- rust-prompt-separation
- Prompt separation (STRICT) - no inline prompts
Boundaries
- rust-boundaries
- Boundaries (thin handlers, validate, call service, return)
Tauri Commands
- rust-tauri-commands-checklist
- Tauri commands checklist (MANDATORY)
Validation
- rust-validation
- Validation (run checks after changes)
Related Skills
- busirocket-core-conventions
- General file structure principles (similar patterns)
How to Use
Read individual rule files for detailed explanations and code examples:
rules/rust-one-thing-per-file.md rules/rust-sql-separation.md rules/rust-tauri-commands-checklist.md
Each rule file contains:
-
Brief explanation of why it matters
-
Code examples (correct and incorrect patterns)
-
Additional context and best practices