PNGme: An Intermediate Rust Project

https://picklenerd.github.io/pngme_book/

Last year my friend and I did this fun little project based on a blog post he found. It's a command line program that lets you hide messages in PNG files. I always thought it was a perfect first project because it's short and relatively simple but covers a decent number of features. Plus you get to play with bytes which I really enjoy for some reason.

A lot of people ask for project suggestions once they feel comfortable with the language and I wanted to provide a more guided experience for people who need it, so I made this. I give a bunch of resources but no completed code so this is really targeted at early-intermediate users who want a stepping stone between tutorials and working on their own projects. At the end, you'll have a fun toy that you wrote yourself and hopefully some ideas about what you want to work on next. The goal is to make sure you keep your momentum and keep writing code rather than losing a bunch of time searching for how to do what you're trying to do. You'll have plenty of opportunities to struggle with all of that on your next project.

I'd love some feedback if anyone gives it a try, especially if you're in the target audience and looking for something like this.

8 Likes

I just had a read through and I reckon your book really fills that transition between reading The Book and understanding the language syntax, and being comfortable to use Rust in real (i.e. not contrived or toy) projects. Nice work :+1:

The recommendation to implement Chip-8 as a future project is also a good one. I implemented it early on and, although it's still about 80% complete and has accumulated 3 or 4 years of cobwebs on GitHub somewhere, it's a really good learning device and you get something tangible out of it.

The introduction chapter is broken:
https://picklenerd.github.io/pngme_book/_introduction.html

Thanks for catching that! Should be fixed now.

Oh man CHIP-8 was my favorite hobby project ever. I learned about so many things that I didn’t know I didn’t know. I had months of stuff to read about and play with afterwards. You can easily cover every important language feature in Rust too.

It's really fun. I'm really glad that I was able to include guided tutorial in Rust in Action for the CHIP-8 in chapter 5.

1 Like

Thank you so much :slight_smile: I was just searching what should I build in Rust. and I found this.
Im on windows, does this cmd line project will work fine ?

Yep everything should be the same in Windows.

1 Like