https://github.com/0xadafang/fastfoodsimulator
FastFoodSimulator is a Rust-based simulation of a fast-food workflow, built to practice concurrency with tokio, Arc<Mutex<>>, and async task loops. It’s a modular sandbox for learning real-time systems and shared-state logic.
https://github.com/0xadafang/fastfoodsimulator
async cli multithreading mutex rust simulator threads tokio
Last synced: 12 months ago
JSON representation
FastFoodSimulator is a Rust-based simulation of a fast-food workflow, built to practice concurrency with tokio, Arc<Mutex<>>, and async task loops. It’s a modular sandbox for learning real-time systems and shared-state logic.
- Host: GitHub
- URL: https://github.com/0xadafang/fastfoodsimulator
- Owner: 0xAdafang
- Created: 2025-04-23T20:32:16.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-17T21:35:15.000Z (12 months ago)
- Last Synced: 2025-06-17T22:27:42.863Z (12 months ago)
- Topics: async, cli, multithreading, mutex, rust, simulator, threads, tokio
- Language: Rust
- Homepage:
- Size: 46 MB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🍔 FastFoodSimulator (Rust Edition)
FastFoodSimulator est une simulation console minimaliste d’un restaurant de type fast-food, **réécrite en Rust**. Le projet modélise le flux opérationnel de base : arrivée des clients, prise de commande, préparation en cuisine et service — chaque étape étant gérée **asynchronement** et de manière **concurrente**.
> 🎯 Ce projet m’a permis de pratiquer des concepts essentiels en Rust comme `Arc`, `Mutex`, `tokio::sleep`, la gestion de tâches asynchrones, ainsi que la séparation logique en modules.
---
## ✨ Fonctionnalités
- ⏱️ Simulation temps réel avec `tokio::time`
- 🧱 Workflow complet : `OrderTaker → Cook → Server`
- 🧵 Concurrence avec `Arc>`
- 📦 Code modulaire, lisible, et extensible
- 🧠 Structure idéale pour expérimenter la logique asynchrone en Rust
---
## 🧩 Architecture
| Composant | Rôle |
|------------------------|-----------------------------------------------------------|
| `OrderTaker` | Génère une commande toutes les X secondes |
| `Cook` | Prépare les commandes en attente |
| `Server` | Délivre les commandes prêtes aux clients |
| `Customer` (optionnel) | Peut être simulé comme récupérant les commandes servies |
| `Simulation` | Lance et coordonne toutes les tâches |
| `utils/timer.rs` | Centralise les constantes temporelles |
| `models/order.rs` | Définit la structure `Order` |
---
## 📸 Aperçu (Console)
> Exemple d'exécution :

---
## 📦 Prérequis
- Rust 1.70+
- Cargo
- VS Code ou tout autre IDE compatible Rust
---
## 🚀 Comment lancer
```bash
git clone https://github.com/0xAdafang/FastFoodSimulator.git
cd FastFoodSimulator
cargo run