A modern, robust, and extensible command-line to-do list application written in Rust. Manage your tasks efficiently with a beautiful CLI, persistent storage, and a clean codebase ready for extension!
- Add tasks with unique IDs
- List all tasks with status (done/undone)
- Mark tasks as done
- Remove tasks
- Persistent storage in
todo.json - Robust error handling
- Extensible: Easily add due dates, priorities, encryption, or a TUI
# Add a task
cargo run -- add "Buy groceries"
# List all tasks
cargo run -- list
# Mark a task as done
cargo run -- mark-done 1
# Remove a task
cargo run -- remove 1flowchart TD
A["User"] -->|"CLI Command"| B["Clap Parser"]
B -->|"Subcommand"| C["App Logic"]
C -->|"Reads/Writes"| D["todo.json"]
D -->|"Deserializes/Serializes"| E["Serde/Serde_json"]
C -->|"Shows"| F["Terminal Output"]
- clap (CLI argument parsing)
- serde & serde_json (serialization)
- Add due dates, priorities, or encryption
- Switch to TOML or add a TUI with tui-rs
.
├── src/main.rs # App logic
├── todo.json # Task storage
├── Cargo.toml # Dependencies
└── README.md # This file