I first tried out in the fall of 2021. I used it to start and eventually complete a re-write of Firnº, originally written in Clojureº.

Concepts & Notes


A key feature of Rust. It is not commonly found in other languages. It takes a bit of time to get into it. There are three rules of ownership.

  1. Each value in rust is owned by a variable.

  2. When the owner goes out of scope, the value will be deallocated.

  3. There can only be one owner at a time (this avoid the class of bugs due to double-free (trying to deallocate memory twice.))

  4. Functions can "borrow" complex data type by using the & symbol to make a "reference" to the original variable that is to be borrowed.

  5. References are immutable, unless marked otherwise.


Rust's API/Syntax is pretty large. Below are the things I'm usually forgetting / trying to google when I'm building something.

default val for optionaluse unwrap_or()