My Rust Learning Journey
December 10, 2024Rust is a systems programming langauge that aims to provide the low-level control of languages like C and C++ while ensuring memory safety and thread safety without using a garbage collector.
Why did I want to start learning rust?
I've decided to learn Rust to build a screenshot / screen recording mac application idea I've had for a while.
I was originally going to use Electron.js as its backend uses node and I'm already very familiar with JavaScript, but after a long time spent on Reddit I've seen that a lot of people don't like the large bundle size.
Now, my plans are to use Tauri 2.0, which does have support for React, but apparently I will need to eventually need to implement some Rust.
What is Tauri 2.0?
Tauri 2.0 is a significant update to the Tauri framework, a cross-platform application development tool that allows developers to build small, fast native apps for desktop (Windows, macOS, Linux) and mobile (iOS, Android) platforms using web technologies like HTML, CSS, and JavaScript, with the backend logic primarily powered by Rust.
Popular Applications built with Tauri 2.0
- Cap - Open source alternative to Loom. Lightweight, powerful, and stunning. Record and share securely in seconds with custom S3 bucket support.
- ChatGPT Desktop Application - ChatGPT desktop application is an official software version of OpenAI's ChatGPT that you can install and run directly on your computer, rather than accessing it through a web browser. It provides a convenient way to use ChatGPT with added features tailored for desktop users.
Setting Up Rust On Mac
Requirements:
To install rust-analyzer: :MasonInstall rust-analyzer
To install rustaceanvim:
return {
"mrcjkb/rustaceanvim",
version = "^5", -- Recommended
lazy = false, -- This plugin is already lazy
["rust-analzyer"] = {
cargo = {
allFeatures = true,
},
},
}
6 Month Hiatus
After 6 months, I have essentially dumped learning rust. While I was excited to learn a new programming language, I found another project (webportfolios.dev) that I invested all my time in.
The main reasoning was I saw a gap in the market for that type of application and wanted to quickly take advantage and secure my spot.
Luckily this switch up was worth it as the project has 400+ users and 180+ unique portfolio submissions with a large portion of the sites traffic coming naturally from google.
With the project complete and running on its own I thought now is the best time to pick up rust once (and hopefully) for all.
How I'll Continue
Looking back at some of my old rust code, I can not say for certain how / why I did what I did. But, instead of worrying about 'learning rust' the traditional way I will instead build the application I wanted to learn rust for in the first place.
Anyways, I never had any real plans of comitting to rust 100% as I genuinely enjoy web development.
Still In Progress
I'm currently learning Rust and documenting my journey as I go, expect regular updates as I progress.