Rust is one of my favourite languages at the moment and I'm always looking for good ways to use it. I started off with a simple terminal poker game to test and learn the features of the language and test it's performance.
Now it is my language of choice for programming microcontrollers in hobby projects. Using the Embassy framework I have set up tools to be able to prototype and deliver code quickly for various sensors in my Homenode project.
I have used Rust in a professional setting to facilitate communication with a hardware security module which involved using foreign function interfaces to C based libraries for PKCS11. To tie it all together I have implemented cross compilation via Docker to build and test releases for different architectures in Gitlab pipelines. I have also experimented with writing WASM modules for the browser as well as NodeJS modules.
I have found it easy to use for being such a performant low level language. While I would still prefer Typescript for horizontally scalable general purpose applications, I would want to use Rust where possible for embedded environments or more performance critical cases.
There are several things about Rust that stand out to me.
- It's unique style of memory management
- It fixes mistakes from other languages (no nulls, explicit errors)
- The community and tooling behind it
- It's performance