English | 中文
- RTD (Rust To Do) is a todo app cli tool write by 500 lines Rust code. (exclude space lines/comments/long line break display/test code)
- RTD is also a tutorial, designed to learn Rust by doing.
Assuming you know nothing about Rust, through the Learn Rust by 500 lines code tutorial, step by step to build the project from scratch, you will learn:
- Rust common syntax
- Rust module system (
package
/binary crate
/library crate
/mod
/pub
/use
) - Rust ownership model (Bernstein conditions)
- Rust lifetime
- Rust error/null handling model (
Result<T, E>
/Option<T>
) - Rust generic
- Rust pattern matching (
if let
,match
...) - Rust unit test
- Rust file I/O (
File Seek
/Buffed File I/O
) - Rust manipulating environment variables
- Rust command line parameter parsing
- Rust release package to crate.io
- The general process of developing a program (requirements/design/implementation/testing/release/maintenance)
- Layered abstraction (data storage layer/model mapping layer/data model layer/business logic layer/application interface layer/user interface layer)
- Handwritten serialization/deserialization from scratch
- Implement the recycle bin function (virtualization concept)
Use a local file $HOME/.rtd.csv
store all data
- Extremely lightweight and concise todo command line application
- Cross-platform, Rust's excellent build system naturally supports cross-platform
- Safe, supports recycle bin, completely local, no network, no database
- All data storage uses only one local csv file, which can be switched between different machines by copying the csv file
Interesting fact: I use RTD to complete the RTD tutorial :)
If you like my tutorial, don't forget to give me a star~
- Rust is naturally cross-platform. This project is built and tested in the
linux
environment, andWindows
/MacOS
are also supported. You can choose to download the correspondingCargo
according to your own operating system. Cargo
Rust's package management and build tool, can be installed directly through the Rust official websiterustup
one line command. Then, all things will be done byCargo
, so cute, right?
cargo install rtd-tutorial
git clone https://github.com/cuppar/rtd.git
cargo install --path rtd
rtd -h
rtd --help
rtd -a <item-name>
rtd --add <item-name>
rtd
rtd -l
rtd -l uncompleted
rtd --list
rtd --list uncompleted
rtd -c <item-id>
rtd --complete <item-id>
rtd -l completed
rtd --list completed
rtd -u <item-id>
rtd --uncomplete <item-id>
rtd -d <item-id>
rtd --delete <item-id>
rtd -l deleted
rtd --list deleted
rtd -r <item-id>
rtd --restore <item-id>
rtd --destroy <item-id>
rtd --destroy-deleted
rtd -l all
rtd --list all
rtd --clear
Cuppar He(He Zhiying), software development engineer, likes programming, technical writing, learning new things, especially computer science, worked for SAP(World Top 100) and Alibaba Group(World Top 100 & Chinese internet giant). I am currently in Gap Year, if you are looking for a software development engineer and can provide a high-quality offer(Both remote and on-site), please contact me cuppar.hzy@gmail.com
.