Гайд разработчика¶
RimLoc — Rust localization core/services + desktop-приложение на Tauri 2.
Текущая архитектура¶
source
↓
LocalizationAdapter
↓
canonical project / SourceEntry inventory
↓
translations · revisions · TM · glossary · validation
↓
rimloc-services
↓
RimLocClient / CLI
↓
React desktop / automation / future integrations
Основные каталоги:
crates/— Rust domain/core/services/adapters/import/export/CLI;gui/tauri-app/frontend-react/— будущий production React UI;gui/tauri-app/frontend-v2/— замороженный Svelte fallback;gui/tauri-app/src-tauri/— Tauri bridge/config;docs/— канонические MkDocs docs;test/,testlab/— fixtures/acceptance.
Перед agent-driven изменениями прочитайте AGENTS.md.
Rust checks¶
cargo build --workspace
cargo test --workspace
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
GUI/Linux build может требовать Tauri/WebKit/GTK системные зависимости.
React frontend¶
cd gui/tauri-app/frontend-react
npm ci
npx tsc --noEmit
npm run build
React Tauri dev:
cd ../src-tauri
cargo tauri dev --config tauri.react.conf.json
Svelte fallback заморожен на время convergence.
CLI¶
cargo run -p rimloc-cli -- --help
cargo run -p rimloc-cli -- scan --root ./test/TestMod --format json
cargo run -p rimloc-cli -- validate --root ./test/TestMod
PO-команды — interchange adapters, а не каноническая project architecture.
Новый LocalizationAdapter¶
Начните с гайда по адаптерам и architecture document.
Главное правило: game/environment semantics живут в adapter, а project/TM/glossary/editor остаются generic.
Документация¶
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-docs.txt
mkdocs build --strict
MkDocs — канонический публичный источник документации. GitHub Wiki не используется как второй технический source of truth.
Security-sensitive изменения¶
Filesystem writes, Tauri permissions/IPC, network/provider credentials, shell execution, parsing untrusted input и automation bridges требуют отдельного security review и adversarial tests.
См.:
- SECURITY.md
docs/security/deny.toml
CI / releases¶
CI должен проверять актуальный Rust + React stack и не тратить runner minutes на docs-only изменения.
Публикация release сейчас контролируемая/manual. Не создавайте tag/Release и не публикуйте crates без отдельного owner request.