Skip to content

chenfengyanyu/my-rust-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

my-rust-practice

  • 【基础】内容参考《Rust 权威指南》,作为练习记录。若代码有需要改进的地方还望不吝赐教,一起相互学习,共同进步!
  • 【实践】来源于学习、工作以及其他辅助材料
  • 【扩展】补充一些 Rust 周边能力,如:镜像源、私有化部署等
  • 【资讯】每日补充 Rust 生态相关,如:特性、插件、开源库等,详见:rust_source

注意:如果不想保留 target 编译文件,可以使用命令一键清除:find . -name "target" | xargs rm -rf

一、基础

1.1 入门示例

1.2 基本概念

1.3 包、单元包及模块

1.4 通用集合类型

1.5 错误处理

1.6 泛型、trait与生命周期

  • 【2022.10.05】generics 泛型示例:求最大数
  • 【2022.10.05】struct_generics 结构体中使用泛型
  • 【2022.10.27】trait_demo Trait 的基本使用:定义共同行为
  • 【2022.10.27】trait_demo_default Trait 的基本使用:默认实现
  • 【2022.10.28】trait_demo_type Trait 的基本使用:Trait 作为参数
  • 【2022.10.28】trait_demo_largest Trait 的基本使用:Trait 实现 largest 函数
  • 【2022.10.29】trait_demo_if Trait 的基本使用:使用 trait 约束来有条件地实现方法
  • 【2022.10.29】lifetime_if 生命周期:miss lifetime specifier
  • 【2022.10.29】lifetime_test 生命周期:处理不同生命周期的引用
  • 【2022.10.30】lifetime_struct 生命周期:结构体中定义
  • 【2022.10.30】lifetime_trait 生命周期:同时使用泛型、trait约束与生命周期

1.7 闭包 Closure

1.8 迭代器 Iterator

1.9 智能指针

  • 【2022.11.20】list_box 使用 Box 的 List 定义
  • 【2022.11.20】deref_trait_box 通过实现 Deref trait 来将类型视作引用
  • 【2022.11.21】drop_trait 借助 Drop trait 在清理时运行代码
  • 【2022.11.22】mem_drop 使用 std::mem::drop 提前丢弃值
  • 【2022.11.22】rc_list 基于引用计数的智能指针 Rc,Reference counting(引用计数)
  • 【2022.11.23】rc_strong_count 克隆 Rc 会增加引用计数
  • 【2022.11.24】rust_mock_object 模拟对象
  • 【2022.11.27】refcell_demo 将 Rc 和 RefCell 结合使用来实现一个拥有多重所有权的可变数据

1.10 无畏并发

  • 【2022.11.27】handle_thread 使用 join 句柄等待所有线程结束
  • 【2022.11.27】move_thread 在线程中使用 move 闭包
  • 【2022.11.27】message_passing 使用消息传递在线程间转移数据
  • 【2022.12.01】mutual_exclusion 互斥体:mutex(mutual exclusion)
  • 【2022.12.01】mutex 在多个线程间共享 Mutex

1.11 面向对象编程特性

  • 【2022.12.02】encapsulation 封装示例
  • 【2022.12.03】gui_demo 使用 trait 对象来存储不同类型的值
  • 【2022.12.03】blog_demo 状态模式示例(实现一个发布博客的工作流)

1.12 unsafe 特性

  • 【2022.12.11】unsafe_demo 通过不安全函数来实现 split_at_mut
  • 【2022.12.14】extern_func 用 extern 关键字来简化创建和使用外部函数接口(Foreign Function Interface,FFI)
  • 【2022.12.14】static_variable 声明、访问与修改可变静态变量(Rust 中全局变量)
  • 【2022.12.14】unsafe_trait 实现不安全 trait

1.13 高级特性

二、实践

2.1 小练习

2.2 编写一个游戏

2.3 编写 CLI 工具

2.4 测试相关

2.5 框架使用:Yew

Yew 是一个设计先进的 Rust 框架,目的是使用 WebAssembly 来创建多线程的前端 Web 应用。

  • 【2022.10.25】yew_app Rust Web 框架:Yew + Bulma
  • 【2022.11.05】rust-web Rust Web 全栈开发(RESTful API,WebAssembly)
  • 【2022.11.13】yew_todolist Yew Todolist(use trunk serve)

2.6 捕获快捷键

  • 【2022.11.22】signal_handling 处理快捷键 Ctrl+C
  • 【2022.11.22】ctrlc_demo 使用三方库 ctrlc 捕获键位
  • 【2022.11.26】handle_other_signals 捕获其他类型的信号(Crates: Signal-hook)
  • 【2022.11.26】use_channel 使用 channel 通道进行信号处理(Crates: crossbeam-channel)

2.7 系统信息

2.8 实现 Web 服务器

2.9 桌面应用

  • 【2023.03.19】tauri_demo 使用 Tauri 开发桌面应用

2.10 其他

三、扩展

3.1 Cargo 镜像源

3.2 Rust Crates 私有化部署

3.3 Rust 文档注释

  • 【2022.11.19】rust_docs 编写文档示例 docs demo

About

learn rust from scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published