Rust Inseguro (Unsafe)

A linguagem Rust tem duas partes:

  • Rust Seguro (Safe): memĂłria segura, nenhum comportamento indefinido Ă© possĂ­vel.
  • Rust Inseguro (Unsafe): pode desencadear comportamento indefinido se prĂ©-condiçÔes forem violadas.

Veremos principalmente Rust seguro neste curso, mas Ă© importante saber o que Ă© Rust inseguro.

Código inseguro é geralmente pequeno e isolado, e seu funcionamento correto deve ser cuidadosamente documentado. Geralmente é envolto em uma camada de abstração segura.

O cĂłdigo inseguro do Rust oferece acesso a cinco novos recursos:

  • Desreferenciar ponteiros brutos (raw pointers).
  • Acessar ou modificar variĂĄveis estĂĄticas mutĂĄveis.
  • Acessar os campos de uma union.
  • Chamar funçÔes unsafe (inseguras), incluindo funçÔes extern (externas).
  • Implementar traits unsafe.

A seguir, abordaremos brevemente os recursos inseguros. Para detalhes completos, consulte o CapĂ­tulo 19.1 no Rust Book e o Rustonomicon.

This slide should take about 5 minutes.

Rust inseguro não significa que o código esteja incorreto. Significa que os desenvolvedores desligaram os recursos de segurança do compilador e precisam escrever o código corretamente por eles mesmos. Significa também que o compilador não impÔe mais as regras de segurança de memória do Rust.