A Rust-powered command-line application that combines a Todo List Manager, a Basic Calculator, and a Multithreaded Calculator — all in one tool.
This project is designed to help beginners and intermediates strengthen their understanding of Rust fundamentals, including ownership, borrowing, modules, collections, user input, and multithreading.
- Add tasks
- List tasks
- Remove tasks
- Mark tasks as completed
- Clean, simple CLI interface
- Addition
- Subtraction
- Multiplication
- Division (with safe error handling)
- Separated into its own Rust module for reusability
- Executes operations on multiple threads
- Demonstrates concurrency using
std::thread - Ideal for CPU-heavy or background computations
Each module handles a dedicated portion of the program, designed using clean Rust architecture.
First, ensure Rust is installed:
rustc --version cargo --version
Inside the project directory, run:
cargo run
Select an option:
- Todo App
- Calculator
- Multithreaded Calculator
- Exit
📝 Todo App Menu
Selecting Todo App gives you:
- Add Task
- List Tasks
- Remove Task
- Mark Task as Completed
- Back to Main Menu
Examples
Add → "Finish Rust project"
List → Shows pending & completed tasks
Remove → Remove by index
Mark complete → Updates task status
Input order:
Enter first number Enter second number Choose operation: +, -, *, /
Example 5 3 * Result: 15
You will see:
Enter number A: Enter number B: Choose operation to run in a separate thread:
The calculation runs on a separate thread, demonstrating Rust concurrency.
This project reinforces many core Rust concepts:
Rust module organization
Structs & enums
Ownership and borrowing
Collections (Vec)
Pattern matching
Error handling
Iterators
User input parsing
Concurrency with threads
A strong foundation for advanced Rust and future Solana development.
Ideas to extend the app:
File-based task persistence
Task timestamps
Task categories or priority levels
Colored output
Batch operations using threads
Terminal UI using crossterm or ratatui
📄 License
This project is open-source. Feel free to modify, extend, or use it for learning.