- Sobre o projeto
- Funcionalidades
- Como executar o projeto
- Tecnologias
- Estrutura do Projeto
- Autor
- Licença
Esse projeto tem como intuíto exemplificar como pode ser criado o seu projeto com Rust utilizando conceitos da arquitetura Vertical Slice junto com Domain-Driven Design e arquitetura modular.
- Vertical Slice
- HTTP Routes
- Asynchronous communication
- Dependency Injection
- Exception Filter
- Postgres Integration
- OpenApi Integration
- Logs
- Tests
- Authentication
- Password encryption
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Rust, Docker. Além disto é bom ter um editor para trabalhar com o código como VSCode
# Clone este repositório
$ git@github.com:andrewronscki/template_rust_vertical_slice.git
# Acesse a pasta do projeto no terminal/cmd
$ cd template_rust_vertical_slice
# Crie a infra com docker compose
# Garanta que o docker esteja rodando
$ make infra
# Após a infra ser criada inicie o projeto
$ make run
# Para mais comandos visite o arquivo Makefile
As seguintes ferramentas foram usadas na construção do projeto:
Template (Rust)
- Axum
- Tokio
- Serde
- Serde Json
- Diesel
- Dotenv
- This Error
- Tower Http
- Waiter DI
- Once Cell
- Utoipa
- Utoipa Swagger UI
- Lapin
- Futures Util
- Log
- Env Logger
Veja o arquivo Cargo.toml
A estrutura do template do projeto segue este modelo:
- O sistema deve ser desenvolvido utilizando os ensinamentos do Vertical Slice e Domain-Driven Design, separando as camadas em domain e features;
- O sistema deve ser agrupado por módulos independentes;
- O desenvolvimento dos domínios devem ser orientado a testes (TDD).
André Wronscki Ricardo 🚀
Este projeto esta sobe a licença MIT.