#教程 #待办事项 #指南 #实践学习 #构建工具 #命令行工具 #逐步指南

bin+lib rtd-tutorial

通过500行代码学习Rust,构建Rust待办事项命令行工具

23个版本

0.1.23 2023年9月5日
0.1.22 2023年9月5日
0.1.21 2023年8月3日
0.1.19 2023年7月31日

#881 in 命令行工具

MIT 许可证

3MB
657

通过500行代码学习Rust

crate_version crate_downloads license

英语 | 中文

  • RTD (Rust To Do) 是一个用500行Rust代码编写的待办事项命令行工具。(不包括空白行/注释/长行中断显示/测试代码)
  • RTD也是一个教程,旨在通过实践学习Rust。

rtd_list_all

目录


从RTD中你可以学到什么?

假设你对Rust一无所知,通过通过500行代码学习Rust教程,逐步从零开始构建项目,你会学到

  • Rust常用语法
  • Rust模块系统(package/binary crate/library crate/mod/pub/use
  • Rust所有权模型(Bernstein条件)
  • Rust生命周期
  • Rust错误/空处理模型(Result<T, E>/Option<T>
  • Rust泛型
  • Rust模式匹配(if let , match ...)
  • Rust单元测试
  • Rust文件I/O(File Seek/Buffed File I/O
  • Rust操作环境变量
  • Rust命令行参数解析
  • Rust发布软件包到crate.io
  • 程序开发的通用过程(需求/设计/实现/测试/发布/维护)
  • 分层抽象(数据存储层/模型映射层/数据模型层/业务逻辑层/应用程序接口层/用户界面层)
  • 从头手写序列化和反序列化
  • 实现回收站功能(虚拟化概念)
架构

rtd_arch

存储

使用本地文件 $HOME/.rtd.csv 存储所有数据

data_storage rtd_list_all

完成本教程或直接安装RTD后,您将获得

  • 极轻量级且简洁的todo命令行应用程序
  • 跨平台,Rust的优秀构建系统自然支持跨平台
  • 安全,支持回收站,完全本地,无网络,无数据库
  • 所有数据存储仅使用一个本地csv文件,可以通过复制csv文件在不同的机器之间切换

有趣的事实:我用RTD完成了RTD教程 :)

如果您喜欢我的教程,请别忘了给我点个赞~


准备

  • Rust自然是跨平台的。本项目在linux环境下构建和测试,并支持Windows/MacOS。您可以根据自己的操作系统选择下载相应的Cargo
  • Cargo是Rust的包管理和构建工具,可以通过Rust官方网站rustup一行命令直接安装。然后,所有的事情都将由Cargo来完成,真是太可爱了,对吧?

安装

通过crate.io

cargo install rtd-tutorial

或通过git repo

git clone https://github.com/cuppar/rtd.git
cargo install --path rtd

用法

查看帮助文档

rtd -h
rtd --help

rtd_help_summary rtd_help

添加todo

rtd -a <item-name>
rtd --add <item-name>

rtd_add

列出所有未完成的todo

rtd
rtd -l
rtd -l uncompleted
rtd --list
rtd --list uncompleted

rtd_list_uncompleted

完成todo

rtd -c <item-id>
rtd --complete <item-id>

rtd_complete_item

列出所有已完成的todo

rtd -l completed
rtd --list completed

rtd_list_completed

取消完成todo

rtd -u <item-id>
rtd --uncomplete <item-id>

rtd_uncomplete_item

将todo投入回收站

rtd -d <item-id>
rtd --delete <item-id>

rtd_delete_item

列出所有回收站todo

rtd -l deleted
rtd --list deleted

rtd_list_deleted

从回收站恢复todo

rtd -r <item-id>
rtd --restore <item-id>

rtd_restore_item

物理销毁todo

rtd --destroy <item-id>

rtd_destroy_item

清空回收站

rtd --destroy-deleted

rtd_destroy_deleted

列出所有todo

rtd -l all
rtd --list all

rtd_list_all

清除所有todo

rtd --clear

rtd_clear

关于作者

库帕尔·黑(黑志颖),软件开发工程师,喜欢编程、技术写作、学习新事物,尤其是计算机科学,曾在SAP(世界100强)和阿里巴巴集团(世界100强 & 中国互联网巨头)工作。我目前处于间隔年,如果您正在寻找软件开发工程师并能提供高质量的职位(远程和现场均可),请与我联系 cuppar.hzy@gmail.com

依赖项