├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── Cargo.toml ├── LICENSE ├── Makefile ├── README.md └── src └── main.rs /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | paths-ignore: 7 | - '**.md' 8 | branches-ignore: 9 | - jupyter 10 | pull_request: 11 | paths-ignore: 12 | - '**.md' 13 | branches-ignore: 14 | - jupyter 15 | 16 | env: 17 | RUST_TOOLCHAIN: stable 18 | TOOLCHAIN_PROFILE: minimal 19 | 20 | jobs: 21 | lints: 22 | name: Run cargo fmt and cargo clippy 23 | runs-on: ubuntu-latest 24 | steps: 25 | - name: Checkout sources 26 | uses: actions/checkout@v2 27 | - name: Install toolchain 28 | uses: actions-rs/toolchain@v1 29 | with: 30 | profile: ${{ env.TOOLCHAIN_PROFILE }} 31 | toolchain: ${{ env.RUST_TOOLCHAIN }} 32 | override: true 33 | components: rustfmt, clippy 34 | - name: Cache 35 | uses: Swatinem/rust-cache@v1 36 | - name: Run cargo fmt 37 | uses: actions-rs/cargo@v1 38 | with: 39 | command: fmt 40 | args: --all -- --check 41 | - name: Run cargo clippy 42 | uses: actions-rs/cargo@v1 43 | with: 44 | command: clippy 45 | args: -- -D warnings 46 | test: 47 | name: Run cargo test 48 | runs-on: ubuntu-latest 49 | steps: 50 | - name: Checkout sources 51 | uses: actions/checkout@v2 52 | - name: Install toolchain 53 | uses: actions-rs/toolchain@v1 54 | with: 55 | profile: ${{ env.TOOLCHAIN_PROFILE }} 56 | toolchain: ${{ env.RUST_TOOLCHAIN }} 57 | override: true 58 | - name: Cache 59 | uses: Swatinem/rust-cache@v1 60 | # - name: Run cargo test --no-run 61 | # uses: actions-rs/cargo@v1 62 | # with: 63 | # command: test --no-run 64 | - name: Run cargo test 65 | uses: actions-rs/cargo@v1 66 | env: 67 | RUST_TEST_THREADS: 8 68 | with: 69 | command: test 70 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Example user template template 2 | ### Example user template 3 | 4 | # IntelliJ project files 5 | .idea 6 | *.iml 7 | out 8 | gen 9 | ### Rust template 10 | # Generated by Cargo 11 | # will have compiled files and executables 12 | debug/ 13 | target/ 14 | 15 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 16 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 17 | Cargo.lock 18 | 19 | # These are backup files generated by rustfmt 20 | **/*.rs.bk 21 | 22 | !/*/Cargo.lock 23 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v4.0.1 4 | hooks: 5 | - id: check-merge-conflict 6 | - id: check-toml 7 | - id: check-yaml 8 | - id: end-of-file-fixer 9 | - id: trailing-whitespace 10 | args: [ --markdown-linebreak-ext=md ] 11 | 12 | - repo: local 13 | hooks: 14 | - id: make-fmt 15 | name: make fmt 16 | entry: make fmt 17 | language: system 18 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-learn" 3 | version = "0.1.0" 4 | edition = "2018" 5 | license-file = "LICENSE" 6 | description = "learning rust" 7 | homepage = "https://jasonkayzk.github.io/" 8 | readme = "README.md" 9 | repository = "https://github.com/JasonkayZK/rust-learn/" 10 | authors = ["Jasonkay jasonkayzk@gmail.com"] 11 | 12 | [dependencies] 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Jasonkay 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: fmt clippy clean build pack all ci 2 | 3 | all: clean fmt clippy pack 4 | 5 | ci: fmt clippy 6 | 7 | fmt: 8 | cargo fmt --all -- 9 | 10 | clippy: 11 | cargo clippy -- -D warnings 12 | 13 | clean: 14 | rm -rf ./target 15 | 16 | build: 17 | cargo build 18 | 19 | pack: 20 | cargo build --release 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # **Rust Learn** 2 | 3 | 4 | 5 | 6 | 7 | A repo to learn rust. 8 | 9 | This main branch is a standard template for new rust project! 10 | 11 |
12 | 13 | ## **Learning Resource** 14 | 15 | Learn Rust with: 16 | 17 | - [《Rust 程序设计语言(第二版) 简体中文版》](https://www.bookstack.cn/books/trpl-zh-cn) 18 | - [《Rust语言圣经(Rust Course)》](https://course.rs/about-book.html) 19 | - [《rust-by-example》](https://doc.rust-lang.org/stable/rust-by-example/) 20 | - [《too-many-lists》](https://rust-unofficial.github.io/too-many-lists/) 21 | - [《Rusty Book》](https://rusty.rs/about.html) 22 | - [《Rust 秘典(死灵书)》](https://nomicon.purewhite.io/intro.html) 23 | - [《The Little Book of Rust Macros (Rust 宏小册)》](https://zjp-cn.github.io/tlborm/introduction.html) 24 | 25 | 26 | Exercises: 27 | 28 | - [rustlings](https://github.com/rust-lang/rustlings) 29 | - [《Rust语言实战》](https://zh.practice.rs/why-exercise.html) 30 | 31 | 32 | Gitbook Url: 33 | 34 | - https://www.gitbook.com/book/kaisery/trpl-zh-cn/details 35 | 36 |
37 | 38 | ## **Jupyter** 39 | 40 | **The Jupyter branch is shown below (Which helps you run Rust as script!):** 41 | 42 | - https://github.com/JasonkayZK/rust-learn/tree/jupyter 43 | 44 | Which depend on jupyter kernel: 45 | 46 | - https://github.com/google/evcxr/tree/main/evcxr_jupyter 47 | 48 |
49 | 50 | ## **Create Project** 51 | 52 | Use Cargo to create a project: 53 | 54 | ```bash 55 | cargo new hello_rust --bin 56 | ``` 57 | 58 | build: 59 | 60 | ```bash 61 | cd hello_rust && cargo build --release 62 | ``` 63 | 64 | run: 65 | 66 | ```bash 67 | ./target/release/hello_rust 68 | Hello, world! 69 | ``` 70 | 71 | > Or just run program with: 72 | > 73 | > ```bash 74 | > cargo run 75 | > ``` 76 | 77 |
78 | 79 | ## **Now Finished** 80 | 81 | | Project | Date | Note | Linked Blog | 82 | | ------------------------------------------------------------ | :---------------------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | 83 | | [chapter2-guessing-game](https://github.com/JasonkayZK/rust-learn/tree/chapter2-guessing-game) | 2021-06-01 | A guessing game | | 84 | | [chapter3-variables](https://github.com/JasonkayZK/rust-learn/tree/chapter3-variables) | 2021-06-02 | Variable & Type | | 85 | | [multiple-main-demo](https://github.com/JasonkayZK/rust-learn/tree/multiple-main-demo) | 2021-06-02 | A demo to show how to run multiple main | | 86 | | [chapter4-function](https://github.com/JasonkayZK/rust-learn/tree/chapter4-function) | 2021-06-02 | Function | | 87 | | [chapter5-control-flow](https://github.com/JasonkayZK/rust-learn/tree/chapter5-control-flow) | 2021-06-02 | Control flow(if/loop/while/for) | | 88 | | [chapter6-ownership](https://github.com/JasonkayZK/rust-learn/tree/chapter6-ownership) | 2021-06-03 | Ownership(also string/slice) | | 89 | | [chapter7-struct](https://github.com/JasonkayZK/rust-learn/tree/chapter7-struct) | 2021-06-04 | Struct | | 90 | | [chapter8-enum-and-match](https://github.com/JasonkayZK/rust-learn/tree/chapter8-enum-and-match) | 2021-06-07 | Enum & Match | | 91 | | [chapter9-modules](https://github.com/JasonkayZK/rust-learn/tree/chapter9-modules) | 2021-06-07 | Modules(mod/pub/use/super) | | 92 | | [chapter10-collections](https://github.com/JasonkayZK/rust-learn/tree/chapter10-collections) | 2021-06-09 | Vector & String & Map | | 93 | | [chapter11-error-handling](https://github.com/JasonkayZK/rust-learn/tree/chapter11-error-handling) | 2021-06-09 | Error handling (Panic! & Result) | | 94 | | [chapter12-generic-trait-lifetime](https://github.com/JasonkayZK/rust-learn/tree/chapter12-generic-trait-lifetime) | 2021-06-10 | Generic & Trait & Lifetime | | 95 | | [chapter13-testing](https://github.com/JasonkayZK/rust-learn/tree/chapter13-testing) | 2021-06-12 | Testing(Write, Run & Organize) | | 96 | | [chapter14-io-project-grep](https://github.com/JasonkayZK/rust-learn/tree/chapter14-io-project-grep) | 2021-06-13 | A io project: `mini-grep` written in rust. | | 97 | | [chapter15-functional-features](https://github.com/JasonkayZK/rust-learn/tree/chapter15-functional-features) | 2021-06-14 | Functional features(Closure & Iterator) in rust. | | 98 | | [chapter16-cargo](https://github.com/JasonkayZK/rust-learn/tree/chapter16-cargo) | 2021-06-15 | Cargo(Config, Publish, Install & Extend) & Workspace in rust. | | 99 | | [chapter17-smart-pointer](https://github.com/JasonkayZK/rust-learn/tree/chapter17-smart-pointer) | 2021-09-29 | Smart Pointer(Within double-linked-list accomplishment). | | 100 | | [chapter18-concurrency](https://github.com/JasonkayZK/rust-learn/tree/chapter18-concurrency) | 2021-10-03 | Concurrency. | | 101 | | [chapter19-oop](https://github.com/JasonkayZK/rust-learn/tree/chapter19-oop) | 2021-11-14 | Object-Oriented-Programming. | | 102 | | [chapter20-match-patterns](https://github.com/JasonkayZK/rust-learn/tree/chapter20-match-patterns) | 2021-11-14 | The Match Patterns. | | 103 | | [chapter21-advanced-features](https://github.com/JasonkayZK/rust-learn/tree/chapter21-advanced-features) | 2021-11-14 | The advanced features:
Unsafe、Lifetime、Trait、Type、Function & Closure | | 104 | | [actix-web-demo](https://github.com/JasonkayZK/rust-learn/tree/actix-web-demo) | 2021-10-04 | RESTful API accomplished by [actix-web](https://github.com/actix/actix-web) framework. | | 105 | | [rbatis-demo](https://github.com/JasonkayZK/rust-learn/tree/rbatis-demo) | 2021-10-07 | A demo to show how to use ORM framework: [rbatis](https://github.com/rbatis/rbatis) | | 106 | | [wasm-hello](https://github.com/JasonkayZK/rust-learn/tree/wasm-hello) | 2021-10-09 | A simple rust-wasm demo.[Use template: [wasm-pack-template](https://github.com/rustwasm/wasm-pack-template)] | [《Rust实现WebAssembly初窥》](https://jasonkayzk.github.io/2021/10/10/Rust实现WebAssembly初窥/) | 107 | | [feature-phantom](https://github.com/JasonkayZK/rust-learn/tree/feature-phantom) | 2021-10-19 | A demo to show how to use `PhantomData` beautify your code | [《Rust中的PhantomType》](https://jasonkayzk.github.io/2021/10/20/Rust中的PhantomType/) | 108 | | [url-mapper-rs](https://github.com/JasonkayZK/rust-learn/tree/url-mapper-rs) | 2021-12-04
(2021-12-21 Last Updated) | A simple URL Mapper service built | [《Building a Web Application with Rust》](https://www.youtube.com/playlist?list=PLz51_WNhdOqv7S5pnycKySU_4PpCagU4Q) | 109 | | [algorithm](https://github.com/JasonkayZK/rust-learn/tree/algorithm) | 2021-12-22 | Collect lots of algorithm & data structures(Such as: LinkedList, …) | | 110 | | [too-many-lists](https://github.com/JasonkayZK/rust-learn/tree/algorithm/too-many-lists) | 2022-01-05 | A accomplishment for [Learn Rust With Entirely Too Many Linked Lists](https://github.com/rust-unofficial/too-many-lists) | | 111 | | [ffi-demo](https://github.com/JasonkayZK/rust-learn/tree/ffi-demo) | 2022-01-17 | A FFI(Foreign Function Interface) demo according to:
https://nomicon.purewhite.io/ffi.html | | 112 | | [hot-reload](https://github.com/JasonkayZK/rust-learn/tree/hot-reload) | 2022-08-10 | A demo to show hot-reload.
Reference: https://robert.kra.hn/posts/hot-reloading-rust/ | | 113 | | [tokio](https://github.com/JasonkayZK/rust-learn/tree/tokio) | 2022-11-01 | A branch to learn [tokio](https://github.com/tokio-rs/tokio) | | 114 | | [recover](https://github.com/JasonkayZK/rust-learn/tree/recover) | 2022-11-17 | A branch to show how rust recovered from panic | [《Rust从panic中恢复》](https://jasonkayzk.github.io/2022/11/17/Rust从panic中恢复/) | 115 | | [build-version](https://github.com/JasonkayZK/rust-learn/tree/build-version) | 2022-11-17 | A branch to use `build.rs` add commit version for binary executable | [《为Cargo编译的可执行文件增加commit版本号》](https://jasonkayzk.github.io/2022/11/17/为Cargo编译的可执行文件增加commit版本号/) | 116 | | [error](https://github.com/JasonkayZK/rust-learn/tree/error) | 2022-11-18 | A branch to show error handle | [《Rust中的错误处理》](https://jasonkayzk.github.io/2022/11/18/Rust中的错误处理/) | 117 | | [project-structure](https://github.com/JasonkayZK/rust-learn/tree/project-structure) | 2022-11-19 | A branch to show how rust project structure organized | [《Rust模块组织结构》](https://jasonkayzk.github.io/2022/11/19/Rust模块组织结构/) | 118 | | [default-and-with](https://github.com/JasonkayZK/rust-learn/tree/default-and-with) | 2022-11-19 | Use Default or With Trait to initiate item | [《Rust中的默认初始化和初始化重载》](https://jasonkayzk.github.io/2022/11/19/Rust中的默认初始化和初始化重载/) | 119 | | [cargo](https://github.com/JasonkayZK/rust-learn/tree/cargo) | 2022-11-23 | A branch to learn [cargo](https://doc.rust-lang.org/cargo/index.html) | [《Cargo命令及其扩展》](https://jasonkayzk.github.io/2022/11/23/Cargo命令及其扩展/) | 120 | | [compare](https://github.com/JasonkayZK/rust-learn/tree/compare) | 2022-11-23 | A branch to show how PartialEq/Ord, Eq/Ord works | [《Rust中的比较》](https://jasonkayzk.github.io/2022/11/23/Rust中的比较/) | 121 | | [any](https://github.com/JasonkayZK/rust-learn/tree/any) | 2022-11-25 | A branch to show reflection via Any | [《Rust反射之Any》](https://jasonkayzk.github.io/2022/11/24/Rust反射之Any/)
[《Rust中的向下转型》](https://jasonkayzk.github.io/2023/12/13/Rust中的向下转型/) | 122 | | [reflection](https://github.com/JasonkayZK/rust-learn/tree/reflection) | 2022-11-25 | A branch to show reflection via proc-macros | [《Rust反射之过程宏》](https://jasonkayzk.github.io/2022/11/25/Rust反射之过程宏/) | 123 | | [cargo-features](https://github.com/JasonkayZK/rust-learn/tree/cargo-features) | 2022-11-28 | A branch to show cargo features | [《通过一个例子学习Cargo-Features》](https://jasonkayzk.github.io/2022/11/28/通过一个例子学习Cargo-Features/) | 124 | | [future](https://github.com/JasonkayZK/rust-learn/tree/async/examples/1_future) | 2022-11-29 | A branch to show how to use future and how it works | [《Rust中Future执行底层探秘》](https://jasonkayzk.github.io/2022/11/29/Rust中Future执行底层探秘/) | 125 | | [grpc](https://github.com/JasonkayZK/rust-learn/tree/grpc) | 2022-12-03 | A branch to show how to use grpc via [tonic](https://github.com/hyperium/tonic) | [《Rust的GRPC实现Tonic》](https://jasonkayzk.github.io/2022/12/03/Rust的GRPC实现Tonic/) | 126 | | [sqlite](https://github.com/JasonkayZK/rust-learn/tree/sqlite) | 2023-07-11 | A branch to show how to use sqlite & migrations in rust. | [《在Rust中使用SQLite和Migration》](https://jasonkayzk.github.io/2023/07/11/在Rust中使用SQLite和Migration/) | 127 | | [cr-sqlite](https://github.com/JasonkayZK/rust-learn/tree/cr-sqlite) | 2023-09-07 | A branch to show how to test [cr-sqlite](https://github.com/vlcn-io/cr-sqlite) | | 128 | | [sync](https://github.com/JasonkayZK/rust-learn/tree/sync) | 2023-09-13 | A branch to show how to sync data between servers via [tonic](https://github.com/hyperium/tonic) | | 129 | | [automerge](https://github.com/JasonkayZK/rust-learn/tree/automerge) | 2023-09-30 | A repo to learn how to use [autosurgeon](https://github.com/automerge/autosurgeon). | | 130 | | [p2panda-demo](https://github.com/JasonkayZK/rust-learn/tree/p2panda-demo) | 2023-11-12 | A demo to show how to use [p2panda](https://github.com/p2panda/p2panda/tree/main) to create a local-first application. | | 131 | | [global-vars](https://github.com/JasonkayZK/rust-learn/tree/global-vars) | 2023-11-27 | A branch to show how to define a global variable in Rust. | [《Rust中创建全局变量》](https://jasonkayzk.github.io/2023/11/27/Rust中创建全局变量/) | 132 | | [overflow](https://github.com/JasonkayZK/rust-learn/tree/overflow) | 2023-12-13 | A branch to show how to handle arithmetic overflow | [《在Rust中处理整数溢出》](https://jasonkayzk.github.io/2023/12/13/在Rust中处理整数溢出/) | 133 | | [proj/p2p-demo](https://github.com/JasonkayZK/rust-learn/tree/proj/p2p-demo) | 2023-12-27 | A branch to show how to use [libp2p](https://github.com/libp2p/rust-libp2p/) | [《Rust中使用libp2p》](https://jasonkayzk.github.io/2023/12/27/Rust中使用libp2p/) | 134 | | [proj/p2p-sync](https://github.com/JasonkayZK/rust-learn/tree/proj/p2p-sync) | 2023-12-31 | A branch to show how to use gossip and append-log sync data in p2p network | [《使用AppendLog和Gossip在P2P网络中同步状态》](https://jasonkayzk.github.io/2023/12/31/使用AppendLog和Gossip在P2P网络中同步状态/) | 135 | | | | | | 136 | 137 |
138 | 139 | ## **Serial Project** 140 | 141 | ### **url-mapper-rs** 142 | 143 | Project Space: 144 | 145 | - [url-mapper-rs](https://github.com/JasonkayZK/rust-learn/tree/url-mapper-rs) 146 | 147 | Learning Step: 148 | 149 | - [Part I : Configuration](https://github.com/JasonkayZK/rust-learn/commit/12b88b1b5f5e02141ff90716feefea834817c34b) 150 | - [Part II : Database Setup](https://github.com/JasonkayZK/rust-learn/commit/89327a61a4afda4e2fb9f55171889ee7fa205de5) 151 | - [Part III - Database Manager: add mapper & tokio-async](https://github.com/JasonkayZK/rust-learn/commit/51120a38865911aa19a5fd4b093d077a40e95cd0) 152 | - [Part IV: Basic Server & log tracing](https://github.com/JasonkayZK/rust-learn/commit/75267288ec824cd9b65f84245e14b37a9b4d5b4c) 153 | - [Part V: Server and Database Manager communication](https://github.com/JasonkayZK/rust-learn/commit/cefc2ad7639c8359719cb639b9351c16db9e19d1) 154 | - [Part VI - UrlMap CRUD API](https://github.com/JasonkayZK/rust-learn/commit/d77521b4c39ca953ef51cc75065f23a487ba6b12) 155 | - [Part VII - Auth Middleware](https://github.com/JasonkayZK/rust-learn/commit/2da0d7d7ef20cf54bf4d01f4cc927e29ca5a58ea) 156 | - [Part VIII - Containerization](https://github.com/JasonkayZK/rust-learn/commit/5d5cebcf69dccb809afb46b74dd6479991e511ae) 157 | - [Part IX - Handling Signals & Deploying to Kubernetes](https://github.com/JasonkayZK/rust-learn/commit/03d3a5c76ad168da2ac3bd850e18bde6780d747f) 158 | - [Part X - Frontend using Tera](https://github.com/JasonkayZK/rust-learn/commit/ad3828f69af89ea25092d8319bb6099cc357966f) 159 | - [Part XI - React Front-End](https://github.com/JasonkayZK/rust-learn/commit/bdb21c2bff6ead55ba55554a51e0223e76453c60) 160 | 161 | ### algorithm 162 | 163 | Project Space: 164 | 165 | - [algorithm](https://github.com/JasonkayZK/rust-learn/tree/algorithm) 166 | - [sorting](https://github.com/JasonkayZK/rust-learn/tree/algorithm/algorithms/src/sorting) 167 | - [bubble_sort.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/algorithms/src/sorting/bubble_sort.rs) 168 | - [insertion_sort.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/algorithms/src/sorting/insertion_sort.rs) 169 | - [merge_sort.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/algorithms/src/sorting/merge_sort.rs) 170 | - [quick_sort.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/algorithms/src/sorting/quick_sort.rs) 171 | - [selection_sort.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/algorithms/src/sorting/selection_sort.rs) 172 | - [collection](https://github.com/JasonkayZK/rust-learn/tree/algorithm/collection) 173 | - [list](https://github.com/JasonkayZK/rust-learn/tree/algorithm/collection/src/list) 174 | - [vector.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/collection/src/list/vector.rs) 175 | - [linked_list.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/collection/src/list/linked_list.rs) 176 | - [tree](https://github.com/JasonkayZK/rust-learn/tree/algorithm/collection/src/tree) 177 | - [binary_search_tree.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/collection/src/tree/binary_search_tree.rs) 178 | - [concurrency](https://github.com/JasonkayZK/rust-learn/tree/algorithm/concurrency) 179 | - [my_arc.rs](https://github.com/JasonkayZK/rust-learn/blob/algorithm/concurrency/src/my_arc.rs) 180 | 181 | Learning Step: 182 | 183 | Not Yet! 184 | 185 |
186 | 187 | ## **More Info** 188 | 189 | - https://rust.cc/ 190 | - https://wiki.rust-china.org/ 191 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("let's rust-up!") 3 | } 4 | --------------------------------------------------------------------------------