Small projects with Elegant code base
Following questions come up weekly in online Rust discussions:
- I just finished reading The Book, what should I do next ?
- What projects would you recommend to a Rust beginner?
- Looking for small projects with an elegant code base
- Codes that is easy to read and learn
The answers to these questions are always Practice: doing some exercises, and then reading some small and excellent Rust projects.
This is precisely the goal of this book, so, collecting relative resourses and representing in Rust By Practice seems not a bad idea.
Answers for above questions usually came with
ripgrep, though I don't think it is a small project, but yes, go for it if you are not afraid to delve deep a bit.
2. Building a text editor
https://www.philippflenker.com/hecto/ will lead you to build a text editor from scratch.
Ncspot, a terminal Spotify client. Small, simple, well organized and async, it's good for learning.
4. Command Line Rust
This project is for the book
Command-Line Rust(O'Reily), it will show you how to write small CLIs (clones of
5. pngme book
This book will guide you to make a command line program that lets you hide secret messages in PNG files. The primary goal here is to get you writing code. The secondary goal is to get you reading documentation.
6. Writing an OS in Rust
This blog series creates a small operating system in the Rust programming language. Each post is a small tutorial and includes all needed code, so you can follow along if you like. The source code is also available in the corresponding Github repository.
7. CodeCrafters.io: Build your own Git, Docker, SQLite, or Redis
On CodeCrafters, you can recreate your favorite developer tools from scratch. It's a hands-on, minimally-guided approach to master Rust, while appreciating the internals and documentation of popular technology that we use every day.
mini-redis is an incomplete Redis client and server implementation using tokio, it has decent code base and detail explanations, very suitable for learning Rust and asynchronous programming.
To be continued...