Orientação da Base de Código
Aprenda um workspace Rust lendo os limites do Cargo.toml, rastreando o caminho main do binário e mapeando onde residem os erros, a configuração e os tipos de domínio.
Busque em todas as páginas da documentação
Aprenda um workspace Rust lendo os limites do Cargo.toml, rastreando o caminho main do binário e mapeando onde residem os erros, a configuração e os tipos de domínio.
# Visão geral do workspace
cat Cargo.toml
cargo tree --depth 2
rg "^\[workspace\]" -l
# Pontos de entrada
fd main.rs
rg "#\[tokio::main\]" -l
# Superfície da API pública
cargo doc --no-deps --openQuando usar isto:
Layout típico de workspace de serviço Axum:
billing/
Cargo.toml # raiz do workspace
crates/
api/ # binário: servidor HTTP
src/main.rs
src/routes/
src/state.rs
domain/ # lib: lógica de negócios, sem axum
infra/ # lib: adaptadores sqlx, reqwest
migrations/ # sqlx migrate
Ordem de leitura:
Cargo.toml raiz, membros do workspace e dependências compartilhadasapi/src/main.rs - inicialização, rastreamento, criação de pooldomain/src/lib.rs - tipos e traits principaisinfra - como os clientes DB e HTTP implementam os traitsmigrations/ - verdade do esquemaO que isto demonstra:
api -> domain <- infra| Pergunta | Onde procurar |
|---|---|
| Como a configuração é carregada? | config.rs, main.rs |
| Que tipo de erro cruza as fronteiras? | error.rs, domain |
| Onde estão os testes de integração? | tests/, api/tests/ |
| Portões de CI? | .github/workflows/ |
| MSRV? | rust-toolchain.toml, rust-version |
rg "struct AppState" - estado compartilhado do manipuladorcargo doc - rustdoc em itens públicosrust-analyzer goto-def entre cratesCargo.toml raiz primeiro.Cargo.toml [features].cargo metadata | jq '.packages[].targets'.cargo doc e ADRs de architecture/.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Índice ADR de Arquitetura | Sistema documentado | Caos Greenfield |
| Vídeo de Onboarding | Legado grande | Repositório tem bons docs |
| Tour de emparelhamento | Domínio complexo | Orientação individual com tempo limitado |
O Cargo.toml do workspace sinaliza monorepo; clone uma vez, construa com --workspace.
Verifique build.rs, OUT_DIR e artefatos sqlx prepare - não edite manualmente.
Versões de Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4 e Polars 0.46+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026