/clean-architecture-with-rust

Full-Stack Clean Architecture implementation example written in Rust

Primary LanguageRust

Full-Stack Clean Architecture with Rust

This repository contains an example implementation of a Clean Architecture written in Rust.

Circles

Each circle (a.k.a layer) is organized in a separate crate. Currently there are these circles:

  • domain
  • application
  • adapter
    • json-boundary
  • infrastructure
    • db
  • webapp

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

cd webapp/
trunk build
cd ..
cargo build
./target/debug/clean-architecture-with-rust serve

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.