Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flosse/clean-architecture-with-rust
Full-Stack Clean Architecture implementation example written in Rust
https://github.com/flosse/clean-architecture-with-rust
architecture clean-architecture full-stack rust
Last synced: 12 days ago
JSON representation
Full-Stack Clean Architecture implementation example written in Rust
- Host: GitHub
- URL: https://github.com/flosse/clean-architecture-with-rust
- Owner: flosse
- Created: 2021-05-21T12:13:32.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-02T00:22:58.000Z (about 1 month ago)
- Last Synced: 2024-10-23T07:51:21.902Z (20 days ago)
- Topics: architecture, clean-architecture, full-stack, rust
- Language: Rust
- Homepage:
- Size: 616 KB
- Stars: 119
- Watchers: 3
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Full-Stack Clean Architecture with Rust
This repository contains an example implementation of a
[Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
written in [Rust](https://rust-lang.org).## Circles
Each circle (a.k.a layer) is organized in a separate crate.
Currently there are these circles:- `domain`
- `application`
- `adapter`
- `json-boundary`
- `infrastructure`
- `cli`
- `db`
- `desktop-egui`
- `web`
- `web-app`
- `web-app-api`
- `web-app-kern`
- `web-app-seed`
- `web-server-warp`Depending on your system the amount and the name of circles could
be different but the main **dependency rule** must be ensured:> Source code dependencies can only point inwards.
that means
> Nothing in an inner circle can know anything at all about
> something in an outer circle## Build & run
First install [just](https://just.systems/):
```
cargo install just
```Then you can run
```
just run-web
```
or```
just run-desktop
```or
```
just run-cli
```## Example Szenario
The main purpose of this example is to discuss the architecture,
not the application szenario itself.
Nevertheless, the code represents a real-world application
that helps self-employed people organize their lives.### User Stories
> *As a* self-employed person,
> *I want to* be able to write down spontaneous thoughts,
> *so that* I can find them later again at a central point.> *As a* self-employed person,
> *I want to* structure my thoughts,
> *so that* they're connected with my personal life topics.