{"id":23164011,"url":"https://github.com/danny5487401/advanced_rust","last_synced_at":"2025-04-04T20:48:17.041Z","repository":{"id":253924946,"uuid":"825211981","full_name":"Danny5487401/advanced_rust","owner":"Danny5487401","description":"rust 背包客","archived":false,"fork":false,"pushed_at":"2024-12-12T07:24:15.000Z","size":2317,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T05:28:06.265Z","etag":null,"topics":["rust","rustc"],"latest_commit_sha":null,"homepage":"https://danny5487401.github.io/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Danny5487401.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-07T06:08:42.000Z","updated_at":"2024-12-12T07:24:20.000Z","dependencies_parsed_at":"2025-02-10T05:36:03.753Z","dependency_job_id":null,"html_url":"https://github.com/Danny5487401/advanced_rust","commit_stats":null,"previous_names":["danny5487401/advanced_rust"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danny5487401%2Fadvanced_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danny5487401%2Fadvanced_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danny5487401%2Fadvanced_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danny5487401%2Fadvanced_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Danny5487401","download_url":"https://codeload.github.com/Danny5487401/advanced_rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247249622,"owners_count":20908211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","rustc"],"created_at":"2024-12-18T00:32:46.968Z","updated_at":"2025-04-04T20:48:17.007Z","avatar_url":"https://github.com/Danny5487401.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [**rust 背包客**](#rust-%E8%83%8C%E5%8C%85%E5%AE%A2)\n  - [第一章：log 日志](#%E7%AC%AC%E4%B8%80%E7%AB%A0log-%E6%97%A5%E5%BF%97)\n  - [第二章：feature 条件编译](#%E7%AC%AC%E4%BA%8C%E7%AB%A0feature-%E6%9D%A1%E4%BB%B6%E7%BC%96%E8%AF%91)\n  - [第三章：所有权](#%E7%AC%AC%E4%B8%89%E7%AB%A0%E6%89%80%E6%9C%89%E6%9D%83)\n  - [第四章：生命周期](#%E7%AC%AC%E5%9B%9B%E7%AB%A0%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)\n  - [第五章：内存模型](#%E7%AC%AC%E4%BA%94%E7%AB%A0%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B)\n  - [第六章：类型](#%E7%AC%AC%E5%85%AD%E7%AB%A0%E7%B1%BB%E5%9E%8B)\n  - [第七章：指针](#%E7%AC%AC%E4%B8%83%E7%AB%A0%E6%8C%87%E9%92%88)\n  - [第八章：集合容器](#%E7%AC%AC%E5%85%AB%E7%AB%A0%E9%9B%86%E5%90%88%E5%AE%B9%E5%99%A8)\n  - [第九章：hash](#%E7%AC%AC%E4%B9%9D%E7%AB%A0hash)\n  - [第十章：error 错误处理](#%E7%AC%AC%E5%8D%81%E7%AB%A0error-%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86)\n  - [第十一章：闭包](#%E7%AC%AC%E5%8D%81%E4%B8%80%E7%AB%A0%E9%97%AD%E5%8C%85)\n  - [第十二章：unsafe](#%E7%AC%AC%E5%8D%81%E4%BA%8C%E7%AB%A0unsafe)\n  - [第十三章：atomic and ordering](#%E7%AC%AC%E5%8D%81%E4%B8%89%E7%AB%A0atomic-and-ordering)\n  - [第十四章：并发处理](#%E7%AC%AC%E5%8D%81%E5%9B%9B%E7%AB%A0%E5%B9%B6%E5%8F%91%E5%A4%84%E7%90%86)\n  - [第十五章：宏编程](#%E7%AC%AC%E5%8D%81%E4%BA%94%E7%AB%A0%E5%AE%8F%E7%BC%96%E7%A8%8B)\n  - [参考](#%E5%8F%82%E8%80%83)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n# **rust 背包客**\n\n![rust logo](rust-logo.png)\n\n[cargo workspace来管理多个package](workspace.md)\n\n## [第一章：log 日志](chapter01-log/log.md)\n\n- 1 env_logger 记录日志\n- 2 tracing 记录日志\n\n## [第二章：feature 条件编译](chapter02-feature/feature.md)\n\n## [第三章：所有权](chapter03-ownership/ownership.md)\n\n- 1 COPY 浅拷贝: 赋值或传参会优先使用 Copy 语义\n    - [1.1 哪些结构可以 Copy、哪些不可以 Copy](chapter03-ownership/src/ownership2-copy.rs)\n- [2 Move 转移所有权：无 Copy,赋值或者传参会导致值 Move](chapter03-ownership/src/ownership5-move-sum.rs)\n- [3 Borrow 借用(通过 \u0026 或者 \u0026mut)](chapter03-ownership/src/ownership4-borrow-sum.rs)\n- 4 多个所有者\n    - 4.1 非线程安全 Rc（Reference counter 只读引用计数器）\n    - [4.2 非线程安全 RefCell 实现内部可变性](chapter03-ownership/src/ownership1-borrow-mut.rs)\n    - 4.3 线程安全 Arc（Atomic reference counter）\n    - 4.4 线程安全 Mutex 和 RwLock 实现内部可变性\n- [5 Clone 数据深拷贝](chapter03-ownership/src/ownership3-clone.rs)\n\n## [第四章：生命周期](chapter04-lifecycle/lifecycle.md)\n\n- 1 静态生命周期 和 动态生命周期\n- [2 生命周期标注(lifetime specifier)](chapter04-lifecycle/src/lifecycle1.rs)\n\n## [第五章：内存模型](chapter05-memory/memory.md)\n\n- [1 enum、Option 以及 Result 的布局](chapter05-memory/src/memory1-enum.rs)\n- 2 move and copy 内存模型\n\n## [第六章：类型](chapter06-type/type.md)\n\n- 1 参数多态 (parametric polymorphism）\n    - [1.1 泛型参数 R 的数据结构体,使用时再限制](chapter06-type/src/type1-paramiter.rs)\n    - 1.2 泛型函数\n- 2 特设多态 (adhoc polymorphism)\n    - [2.1 带关联类型的 trait:把错误类型延迟到 trait 实现时才决定](chapter06-type/src/type3-related-trait.rs)\n- 3 子类型多态（subtype polymorphism）\n    - [3.1 静态分派 (static dispatching): 使用泛型函数](chapter06-type/src/type4-child.rs)\n    - [3.2 动态分派 (dynamic dispatching): 使用 trait object](chapter06-type/src/type5-dynamic-dispatch.rs)\n- [4 AsRef 类型转换](chapter06-type/src/type6-asref.rs)\n- [5 Deref解引用运算符（*）的重载:直接访问内部元素的方法](chapter06-type/src/type7-deref.rs)\n\n## [第七章：指针](chapter07-pointer/pointer.md)\n\n- 1 COW(Clone on write 写时克隆) 智能指针\n- 2 mutexGuard 智能指针\n\n## [第八章：集合容器](chapter08-vec/vec.md)\n\n- [1 动态数组 Vector 的 切片引用\u0026[T] 和 数组[T; n] 的 切片引用\u0026[T] 对比](chapter08-vec/src/vec1-slice.rs)\n- [2 动态数组 Vector 和 数组 [T; n] 如何转化成 \u0026[T]](chapter08-vec/src/vec2-slice.rs)\n- [3 String、\u0026String 转换成 \u0026str](chapter08-vec/src/vec3-string-slice.rs)\n\n## [第九章：hash](chapter09-hash/hash.md)\n\n- [1 hashmap cap 扩容和缩容](chapter09-hash/src/hash1-hashmap.rs)\n- [2 HashSet](chapter09-hash/src/hash2-hashset.rs)\n- [3 BTreeMap](chapter09-hash/src/hash3-btreemap.rs)\n\n## [第十章：error 错误处理](chapter10-error/error.md)\n\n- [1 多级 match](chapter10-error/src/error1-match.rs)\n- [2 使用 ? 优化 多级 match 传播错误](chapter10-error/src/error2-customerror.rs)\n- 3 anyhow\n- 4 thiserror\n\n## [第十一章：闭包](chapter11-closure/closure.md)\n\n- [1 闭包的大小跟参数、局部变量都无关，只跟捕获的变量有关](chapter11-closure/src/closure1-size.rs)\n- 2 FnOnce\n- 3 FnMut\n- 4 Fn\n\n## [第十二章：unsafe](chapter12-unsafe/unsafe.md)\n\n- [1 开发者还是调用者保证内存安全](chapter12-unsafe/src/unsafe1-caller.rs)\n\n## [第十三章：atomic and ordering](chapter13-atomic_n_ordering/ordering.md)\n\n- 1 验证 Ordering 的可见性：两线程并发增加值\n    - 容易大于 1000000\n    - 最多只能 1000000\n\n## 第十四章：并发处理\n\n- [1 Condvar 条件变量](chapter14-concurrecy/src/01_convar.md)\n- [2 Future](chapter14-concurrecy/src/02_future.md)\n    - 2.1 await 来执行 future，或则使用一个 executor 来执行 future\n    - 2.2 将值固定到栈上\n    - 2.3 将值固定到堆上\n    - 2.4 将固定住的 Future 变为 Unpin\n- [3 tokio](chapter14-concurrecy/src/03_tokio.md)\n    - [3.1 #[tokio::main] 的作用](chapter14-concurrecy/src/concurrency6_tokio_main.rs)\n    - [3.2 消息通道: mpsc 多生产者，单消费者模式](chapter14-concurrecy/src/concurrency7_tokio_mpsc.rs)\n    - [3.3 消息通道: watch 单生产者、多消费者](chapter14-concurrecy/src/concurrency8_tokio_watch.rs)\n\n## [第十五章：宏编程](chapter15-macro/macro.md)\n\n- 1 声明宏（declarative macro）\n    - [1.1 vec! 实现](chapter15-macro/examples/macro1-declarativemacro.rs)\n    - [1.2 声明宏的 hygiene:宏内部代码和宏上下文相互影响](chapter15-macro/examples/macro2-declarativemacro-hygiene.rs)\n- 2 过程宏（procedural macro）\n    - [2.1 派生宏 (derive macro)](chapter15-macro/examples/macro3-derive-macro.rs)\n    - [2.2 属性宏 (attribute macro)](chapter15-macro/examples/macro4-attribute-macro.rs)\n    - [2.3 函数宏 (function-like macro)](chapter15-macro/examples/macro5-function-macro.rs)\n\n## 参考\n\n- [Rust语言圣经](https://github.com/sunface/rust-course)\n- [Rust 程序设计语言](https://rustwiki.org/zh-CN/book/title-page.html)\n- [Rust Practice](https://github.com/sunface/rust-by-practice)\n- [rust-by-example](https://github.com/rust-lang/rust-by-example)\n- [Rust 秘典(死灵书)](https://github.com/rust-lang-cn/nomicon-zh-Hans)\n- [陈天 · Rust 编程第一课](https://time.geekbang.org/column/intro/100085301?tab=catalog)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanny5487401%2Fadvanced_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanny5487401%2Fadvanced_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanny5487401%2Fadvanced_rust/lists"}