Rust Em 10 Minutos

História

  • Criada em 2006 por Graydon Hoare.
  • Patrocinada pela Mozilla em 2009.
  • Versão 1.0 em 2015.
  • Versão atual: 1.72

Microsoft: 70 percent of all security bugs are memory safety issues

(2019)

Green Energy Language

"Speaking of languages, it's time to halt starting any new projects in C/C++ and use Rust for those scenarios where a non-GC language is required. For the sake of security and reliability. the industry should declare those languages as deprecated"

- Mark Russinovich, Azure CTO, 2022

StackOverflow Survey 2023: "Most Admired Language" (84.6%)

... pelo 8o ano seguido.

Borrow Checker

(and lifetimes)


fn main() {
    let hello = String::from("Hello!");
    {
       let world = String::from("World!");
       println!("{hello} {world}");
    }

    println!("{hello} {world}");
}
                    

fn i_own_this_now(s: String) {
    println!("Hello {s}!")
}

fn main() {
   let name = String::from("Julio");
   i_own_this_now(name);
   println!("Goodbye {name}");
}
                    

fn can_i_borrow_it_for_a_second(s: &str) {
   println!("Hello {s}");
}

fn main() {
    let name = String::from("Julio");
    can_i_borrow_it_for_a_second(&name);
    println!("Goodbye {name}");
}
                    

func foo() {
  regalo := Gift { .. }
  channel <- regalo
  regalo.open();
}
                    
( Niko Matsakis, RustLatam 2019 )
( Niko Matsakis, RustLatam 2019 )

Cargo

  • Dependency manager
  • Build tool
  • Distributable packages
  • Uploader to the registry (crates.io)

Serde Pest Ratatui

The Rust Book

Tokio Async-Std Actix