$ curl --proto '=https' --tlsv1.2 -sSf | sh
$ source $HOME/.cargo/env

Create a new project using

$ cargo new hello_world --bin # for a binary
$ cargo new hello_world       # for a library



Uploading to


cargo publish

Static constants

“Lazy” static constants can be defined using the lazy_static macro from the lazy_static crate.

The crate can be added to the dependencies with

lazy_static = "1.4.0"

and by adding to the Rust source code:

extern crate lazy_static;

Static “global” constants can then be added via:

lazy_static! {
  static ref HASHMAP: HashMap<u32, &'static str> = {
    let mut m = HashMap::new();
    m.insert(0, "foo");
    m.insert(1, "bar");
    m.insert(2, "baz");

List folders recursively

Using the glob crate:

use glob::glob;

fn main() {
    for entry in glob("./**/*.md").expect("Failed to read glob pattern") {
        match entry {
            Ok(path) => println!("{:?}", path.display()),
            Err(e) => println!("{:?}", e),

Duration between two times

Using Rust’s standard SystemTime1, a duration between the present moment and a specific time can be calculated using:

let duration = SystemTime::now()