Learning Rust: Part 4 - I Built a Thing!

Completion

A busy week this week, I completed both the Google and Microsoft courses. After completing the Google course (disclaimer - I didn't do the Android part), I found the Microsoft course very helpful. I found going over some of the concepts useful to solidify what I had already learned.

Putting It Into Practice

After completing the courses, I built a CLI that I had previously written in Javascript. This is a work project, so I won't be sharing the source code, but in general it is about grabbing active TCP connections and formatting them in a simple to understand way. It has different formatting options and can log at different intervals in case that connections need to be followed.

I built this CLI on the back of doing the CLI exercise in the Microsoft course. This inspired how the CLI, such as what packages and how to structure the app. However, I had to learn about Rust regex, use iterators (if you read Part 3, you'll know I struggled with these) and read the documentation for other Rust library features. Oh, I also struggled with the borrow checker and compiler.

I always have been a fan and believer of learning by doing, but completing this CLI has emphasised this for me. I can't quite believe how much I learned from completing this project. "Failing" (compilation errors) makes you learn and understand the right and wrong way to do things. Once you make the mistake and fix it, you soon learn what to do next time.

What Next?

First of all, I plan on rewriting the CLI I just made to use other Rust crates. The implementation I made so far was based on the previous version, written quickly to just get something working. I plan on making it cross-platform so it can be used on macOS and Windows, in addition to Linux that the initial version supported.

Realistically, that will probably be all I can get done this week. Though I do have plans to possibly make this CLI into a desktop/mobile app by making an app with the Tauri framework.