Project structure
opomba
Only important files and dirs are listed here.
.github/contains GitHub Actions definitions for CI/CD.dependabot.ymlcontains config for automatic dependency updates.workflows/contains CI/CD workflows.rust.ymlcontains CI workflow for Rust.
.cargo/config.tomlcontains GLOBAL project config for Cargo and Rust. This is because we have a Cargo Workspace and its easier to have global config./root directory contains root Cargo Cratelaguna-backendand definition of Cargo Workspace.src/main.rsis server entry point.crates/contains Cargo Workspace members (sub-Crates) of the project.laguna-backend-internal/is a crate that contains re-exports of all othercrates/*and is used bylaguna-backend(root crate) to access all other crates.laguna-backend-internal/src/lib.rsre-exporting can be seen here.
laguna-backend-api/contains API endpoints.laguna-backend-dto/contains DTOs (data-transfer-objects) used by laguna-frontend.laguna-backend-model/contains DB models and relations.laguna-backend-config/contains custom config structs forLaguna.tomlconfig.laguna-backend-setup/contains App setup logic (for tests, dev and production) and relies heavily from definitions inlaguna-backend-config.laguna-backend-middleware/contains application logic from API to DB.laguna-backend-tracker/contains torrent tracking system commons.laguna-backend-tracker-http/implements TCP-based (HTTP) tracker.laguna-backend-tracker-udp/implements UDP-based tracker.laguna-backend-tracker-ws/implements WebRTC-based (WebSocker) tracker.
migrations/contains SQL migrations for DB.configs/contains config files for development, testing and deploy.scripts/contains scripts for development, testing and deploy.