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 (unsafe).

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.
  • Acessar ou modificar variĂĄveis estĂĄticas mutĂĄveis.
  • Acessar os campos de uma union.
  • Chamar funçÔes inseguras (unsafe), incluindo funçÔes extern (externas).
  • Implementar traits inseguros (unsafe traits).

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

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.