44![ GitHub Actions Workflow Status] ( https://img.shields.io/github/actions/workflow/status/ghimiresdp/rust-raid/rust.yml )
55![ GitHub code size in bytes] ( https://img.shields.io/github/languages/code-size/ghimiresdp/rust-raid )
66
7-
87> ** DISCLAIMER !!**
98>
109> This project is not affiliated with, endorsed by, or sponsored by the Rust
@@ -18,14 +17,17 @@ learners and coding challenge seekers.
1817
1918> ** Note** : In some linux distributions (especially WSL), the following packages
2019> might need to be installed to run some binaries that require network request.
20+ >
2121> 1 . ** ` pkg-config ` **
2222> 2 . ** ` libssl-dev ` **
2323>
2424> Example commands for installing in ubuntu
25+ >
2526> ``` bash
2627> sudo apt install pkgconf
2728> sudo apt install libssl-dev
2829> ` ` `
30+ >
2931> You can check similar commands for other distributions
3032
3133** The repository contains the following** :
@@ -54,7 +56,6 @@ cargo test --bin huffman
5456> _ updated once the solution gets completed._
5557>
5658> _ You can also create a PR with the solution/enhancement to each topic._
57- >
5859
5960## [ 1. Data Structures] ( data-structures/ )
6061
@@ -67,7 +68,7 @@ cargo test --bin huffman
67684 . [ ** Stacks** ] ( data-structures/src/stack.rs ) ` cargo run --bin stack `
68695 . [ ** Queues** ] ( data-structures/src/queue.rs ) ` cargo run --bin queue `
69706 . [ ** Binary Trees** ] ( data-structures/src/binary_tree.rs ) ` cargo run --bin binary_tree `
70- 7 . [ ** Trie** ] ( data-structures/src/trie.rs ) ` cargo run --bin trie `
71+ 7 . [ ** Trie** ] ( data-structures/src/trie.rs ) ` cargo run --bin trie `
7172
7273## [ 2. Algorithms] ( ./algorithms/README.md )
7374
@@ -116,7 +117,7 @@ cargo test --bin huffman
116117
117118### [ 4.1. Basic Problems] ( problem-solving/src/basic/ )
118119
119- 1 . [ Practical Number] ( problem-solving/src/basic/practical_number.rs ) ` cargo run --bin practical_number `
120+ 1 . [ Practical Number] ( problem-solving/src/basic/practical_number.rs ) ` cargo run --bin practical_number `
1201212 . [ Greatest Common Divisor] ( problem-solving/src/basic/gcd.rs ) ` cargo run --bin gcd `
1211223 . [ Median] ( problem-solving/src/basic/median.rs ) ` cargo run --bin median `
1221234 . [ Reverse digits of the integer] ( problem-solving/src/basic/reverse_integer.rs ) ` cargo run --bin reverse_integer `
@@ -136,65 +137,122 @@ cargo test --bin huffman
1361377 . [ Coin Change Problem] ( problem-solving/src/dp/coin_change.rs ) ` cargo run --bin coin_change `
1371388 . [ Palindrome Partition] ( problem-solving/src/dp/palindrome_partition.rs ) ` cargo run --bin palindrome_partition `
138139
139-
140140## [ 5. Advanced Concepts] ( advanced/README.md )
141141
142142### 5.1. Memory Management
143+
143144- [ Ownership, borrowing, and Lifetimes] ( advanced/memory-management/src/ownership.rs ) ` cargo run --bin ownership `
144145- [ Unsafe Rust] ( advanced/memory-management/src/unsafe.rs )
145146
146147### 5.2. Type System and Generics
148+
147149- [ Generic Types] ( advanced/types-and-generics/src/generics.rs ) ` cargo run --bin generics `
148150- [ Trait Objects and Dynamic Dispatch] ( advanced/types-and-generics/src/traits.rs ) ` cargo run --bin traits `
149151- Associated types and Generic Type parameters
150152- Lifetime Sub-typing
151153
152154### 5.3. Concurrency and Parallelism
155+
153156- [ ` Async/Await ` and ` Futures ` ] ( advanced/concurrent-programming/src/threading.rs ) ` cargo run --bin threading `
154157- [ Thread Spawning] ( advanced/concurrent-programming/src/spawning.rs ) ` cargo run --bin spawning `
155158
156159### 5.4. Macros and Meta programming
160+
157161- [ ` macro_rules! ` ] ( advanced/meta-programming/src/macro-rules.rs ) ` cargo run --bin macro `
158162- [ Derive Macros] ( advanced/meta-programming/src/derive-macro.rs ) ` cargo run --bin derive `
159163- [ Building Domain-Specific Languages (DSL)] ( advanced/meta-programming/src/dsl.rs ) ` cargo run --bin dsl `
160164
161165### 5.5. Low-level and systems programming
166+
162167- [ Conditional Compilation] ( advanced/systems-programming/src/conditional-compilation.rs ) ` cargo run --bin cc `
163168- [ Inline Assembly] ( advanced/systems-programming/src/inline-assembly.rs ) ` cargo run --bin assembly `
164169- Foreign Function Interface (FFI)
165170- Embedded rust and Bare-metal programming
166171
167172### 5.6. Error handling and patterns
173+
168174- [ Unrecoverable error and ` panic! ` macro] ( advanced/error-handling/src/panic.rs ) ` cargo run --bin panic `
169175- [ Recoverable error and ` Result ` enum] ( advanced/error-handling/src/result.rs ) ` cargo run --bin result `
170176- Advanced Error Handling
171- - [ Propagating Errors with ` ? ` operator] ( advanced/error-handling/src/propagation.rs ) ` cargo run --bin propagation `
172- - [ Custom Errors] ( advanced/error-handling/src/custom-error.rs ) ` cargo run --bin custom-error `
177+ - [ Propagating Errors with ` ? ` operator] ( advanced/error-handling/src/propagation.rs ) ` cargo run --bin propagation `
178+ - [ Custom Errors] ( advanced/error-handling/src/custom-error.rs ) ` cargo run --bin custom-error `
173179- Dependency Injection patterns in rust
174180
175181### [ 5.7. Operator Overloading] ( advanced/operator-overloading/src/main.rs ) ` cargo run --bin operator-overloading `
182+
176183- Example 1: Operator Overloading in structs (overloading ` + ` and ` - ` operators)
177184- Example 2: Matrix Multiplication ( overloading ` * ` operator)
178185- Example 3: Scalar Multiplication (operator overloading with heterogeneous data type)
179186
180187### 5.8. Smart Pointers
188+
181189- [ Box Pointers] ( advanced/smart-pointers/src/box.rs ) ` cargo run --bin box `
182190- [ Reference Counters (` Rc ` )] ( advanced/smart-pointers/src/rc.rs ) ` cargo run --bin rc `
183191- [ ` RefCell ` ] ( advanced/smart-pointers/src/refcell.rs ) ` cargo run --bin refcell `
184192- [ ` Arc Mutex ` ] ( advanced/smart-pointers/src/arc-mutex.rs ) ` cargo run --bin arc-mutex `
185193
186194### 5.9. Specialized topics
195+
187196- Writing a custom allocator
188197- Self-referential structs (` box ` , ` rc ` , ` Arc ` )
189198
199+ ---
200+
190201## [ 6. Projects] ( ./projects/ )
191202
192- 1 . [ Python's ` Pandas ` like dataframe container] ( projects/pandas/README.md ) ` cargo run --bin pandas `
193- 2 . [ ` ruscrypt ` basic encryption] ( projects/ruscrypt/README.md ) ` cargo run --bin ruscrypt `
194- 3 . [ Basic Password ` vault ` ] ( projects/vault/README.md ) ` cargo run --bin vault `
195- 4 . [ Basic ` TODO ` Web Application] ( projects/todo-web/README.md ) ` cargo run --bin todo `
196- 5 . [ ` wget ` -like File Downloader with Concurrency - ` cget ` ] ( ) ` cargo run --bin cget <DOWNLOAD_URL> `
197- Example: ` cargo run --bin cget https://filesamples.com/samples/document/docx/sample4.docx `
203+ ### [ 6.1. ` pandas ` - pandas-like mini-dataframe container project] ( projects/pandas/README.md )
204+
205+ Command:
206+ ``` sh
207+ cargo run --bin pandas
208+ ```
209+
210+ ![ pandas] ( res/images/pandas.png )
211+
212+ ---
213+
214+ ### [ 6.2. ` ruscrypt ` - A basic encryption mini-project] ( projects/ruscrypt/README.md )
215+
216+ Command:
217+ ``` sh
218+ cargo run --bin ruscrypt
219+ ```
220+
221+ ---
222+
223+ ### [ 6.3. Basic Password ` vault ` ] ( projects/vault/README.md )
224+
225+ Command:
226+ ``` sh
227+ cargo run --bin vault
228+ ```
229+
230+ ---
231+
232+ ### [ 6.4. A Basic ` TODO ` Web Application mini project] ( projects/todo-web/README.md )
233+
234+ Command:
235+ ``` sh
236+ cargo run --bin todo
237+ ```
238+
239+ and browse: http://localhost:8080
240+
241+ ![ todo] ( res/images/todo.png )
242+
243+ ---
244+
245+ ### [ 6.5. ` cget ` - a wget-like file downloader utility with multithreading] ( projects/cget/Cargo.toml )
246+
247+ Command: ` cargo run --bin cget <DOWNLOAD_URL> `
248+
249+ Example:
250+ ``` shell
251+ cargo run --bin cget https://mirrors.saswata.cc/kde/stable/krita/5.2.14/krita-x64-5.2.14-setup.exe
252+ ```
253+
254+ ![ cget] ( res/images/cget.png )
255+
198256
199257## Running binaries
200258
0 commit comments