← ClaudeAtlas

dare-rust-workspacelisted

Decisão e migração de Cargo workspace multi-crate para projetos Rust/Axum. Use durante design/blueprint para decidir o layout, ou quando um projeto single-crate cresceu além do que comporta confortavelmente. Cobre os 2 cenários — escolher na fase de design + migrar projeto existente — com critérios objetivos e plano em PRs.
dewtech-technologies/dare-method · ★ 3 · AI & Automation · score 76
Install: claude install-skill dewtech-technologies/dare-method
# DARE — Rust Workspace Skill (single-crate vs multi-crate) Use esta skill em dois momentos: - **Design / Blueprint:** projeto Rust novo na stack `rust-axum`. Decida desde o início se ele nasce single-crate ou em workspace multi-crate. - **Migração:** projeto Rust single-crate **já existente** que cresceu demais e está doendo. Proponha o plano de migração. Regra geral: **comece simples, migre quando os critérios objetivos abaixo aparecerem.** Workspace é a estrutura idiomática Rust para projetos maduros, mas é overengineering para o "hello world". --- ## Cenário A — Decisão na fase Design/Blueprint ### Comece **single-crate** quando TODOS forem verdadeiros - Apenas **1 binário** (HTTP server). - Estimativa de **< 30 arquivos `.rs`** no `src/`. - **1–2 sistemas externos** (apenas DB; ou DB + cache). - **Equipe ≤ 2 devs**. - Nenhum requisito de deploy independente para subcomponentes. ### Comece **workspace multi-crate** quando QUALQUER um for verdadeiro - **≥ 2 binários** previstos (API + worker; API + admin; API + CLI). - **Múltiplos sistemas externos** (3+: PG + Redis + Rabbit + Qdrant + Neo4j…). - **Deploy independente** desejado (workers em pods separados no k8s). - **Fronteiras arquiteturais** críticas (domain puro sem HTTP/DB; SDK publicável; cliente compartilhado com outros projetos). - **Equipe ≥ 3 devs** trabalhando em paralelo. ### Layout convencional para workspace Use o prefixo do projeto (`<p>`) — ex: `wa-` para `wa-business-api`, `agent-` para `a