1
0
Fork
You've already forked DistributedDiningPhilosophers
0
Dining Philosophers problem for Distributed Systems using Rust and direct RPC calls
This repository has been archived on 2026年01月15日. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Rust 86.7%
  • TypeScript 8.6%
  • JavaScript 1.2%
  • Dockerfile 1.2%
  • Shell 1%
  • Other 1.2%
2025年02月17日 12:18:31 +01:00
.github Proper README 2025年02月17日 12:18:31 +01:00
cutlery dodge name resolution bullets 2025年01月09日 01:41:13 +01:00
docs Fazit PDF 2025年01月30日 10:45:02 +01:00
frontend Statistiken 2025年01月30日 00:19:19 +01:00
philosopher A few svc philo tests 2025年01月30日 09:36:02 +01:00
shared_menu Include a lot more tests 2025年01月30日 09:31:35 +01:00
waiter Reverse the states to understand where we came from 2025年01月29日 23:20:06 +01:00
.gitignore Working registration 2024年11月08日 17:21:14 +01:00
Cargo.lock Add state time reports 2025年01月24日 13:40:56 +01:00
Cargo.toml Start working on waiter 2024年11月07日 15:55:57 +01:00
docker-compose.yaml Frontend Doku dingens 2025年01月30日 00:28:51 +01:00
Dockerfile Only copy executables from docker 2025年01月09日 13:53:00 +01:00
LICENSE Proper README 2025年02月17日 12:18:31 +01:00
Makefile Fix RDT 2025年01月30日 10:06:38 +01:00
native.sh Min and Max Times 2025年01月29日 23:20:16 +01:00
README.md Proper README 2025年02月17日 12:18:31 +01:00

Distributed Dining Philosophers

Frontend

Overview

This repository contains the implementation of the Dining Philosophers problem for Distributed Systems using Rust and direct RPC calls. The project is structured into multiple components, each responsible for different parts of the system. The documentation for the project is provided in the /docs folder.

Project Structure

  • cutlery/: Contains the source code and configuration for the Cutlery component.
  • docs/: Contains the documentation for the project, including the Requirements, Design, and Test Documentation (RDT).
  • frontend/: Contains the frontend code and configuration.
  • shared_menu/: Contains shared libraries used by different components.
  • waiter/: Contains the source code and configuration for the Waiter component.
  • philosopher/: Contains the source code and configuration for the Philosopher component.
  • .github/: Contains GitHub Actions workflows for CI/CD.

Building and Running the Project

The project itself was designed to run both natively and in Docker for easier development and deployment. The provided Makefile contains targets for building and running the project using Docker Compose. The project can also be built and run natively using the provided native.sh script.

To build and run the project, you can use the provided Makefile. The following targets are available:

  • all: Builds and starts all components using Docker Compose.
  • start_waiter: Builds and starts only the Waiter component.
  • start_philosopher: Builds and starts only the Philosopher component.
  • clean: Removes build artifacts and logs.
  • rebuild: Rebuilds the Docker image.
  • compile_docs: Compiles the LaTeX documentation.

Example command to start the entire system:

make up

Continuous Integration

The repository uses GitHub Actions for CI/CD. The workflow defined in rdt.yml compiles the LaTeX documentation and uploads the resulting PDF file.

Authors

Tom Hert - Tom.Hert@haw-hamburg.de Laurin Zacharias - Laurin.Zacharias@haw-hamburg.de

License

This project is licensed under EUPLv1.2 see HERE. It may not be used without adhering to the license or explicit permission from the authors.

This project is part of a university course. Unlicensed usage of this project to fulfill the course requirements is not allowed and would be considered plagiarism and not adhere to the license! We do not take any responsibility for the consequences of foolish actions and explicitly warn against it!