Небезпечний Rust

Мова Rust складається з двох частин:

  • Safe Rust: безпека пам’яті, невизначена поведінка неможлива.
  • Небезпечний Rust: може викликати невизначену поведінку, якщо порушуються попередні умови.

У цьому курсі ми розглянули переважно безпечний Rust, але важливо знати, що таке небезпечний Rust.

Небезпечний код зазвичай невеликий та ізольований, і його правильність слід ретельно задокументувати. Зазвичай він загорнутий у безпечний рівень абстракції.

Небезпечний Rust дає вам доступ до п’яти нових можливостей:

  • Розіменування необроблених вказівників.
  • Доступ або зміна мутабельних статичних змінних.
  • Доступ до полів union.
  • Викликати unsafe функції, включаючи extern функції.
  • Реалізація unsafe трейтів.

Далі ми коротко розглянемо небезпечні можливості. Щоб отримати повну інформацію, перегляньте розділ 19.1 у книзі Rust та [Rustonomicon](https://doc .rust-lang.org/nomicon/).

This slide should take about 5 minutes.

Небезпечний Rust не означає, що код неправильний. Це означає, що розробники вимкнули деякі функції безпеки компілятора і змушені писати коректний код самостійно. Це означає, що компілятор більше не забезпечує дотримання правил безпеки пам'яті Rust.