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.

1. Ripgrep

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

Tutorial will lead you to build a text editor from scratch.

3. Ncspot

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 head, cat, ls).

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. 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.

8. mini-redis

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...