Середовища виконання

Середовище виконанняe забезпечує підтримку асинхронного виконання операцій (реактор) і відповідає за виконання ф’ючерсів (виконавець). Rust не має "вбудованого" середовища виконання, але доступні кілька варіантів:

  • Tokio: ефективний, із добре розвиненою екосистемою функціональності, наприклад Hyper для HTTP або Tonic для gRPC.
  • async-std: прагне бути "std for async" та включає базове середовище виконання в async::task.
  • smol: простий і легкий

Кілька великих програм мають власний час виконання. Наприклад, Fuchsia вже має один.

This slide and its sub-slides should take about 10 minutes.
  • Зверніть увагу, що з перелічених середовищ виконання лише Tokio підтримується на ігровому майданчику Rust. Ігровий майданчик також не дозволяє будь-який ввід-вивід, тому більшість цікавих асинхронних речей не можуть працювати на ігровому майданчику.

  • Ф'ючерси "інертні" в тому, що вони нічого не роблять (навіть не починають операцію вводу-виводу), якщо немає виконавця, який їх опитує. Це відрізняється від, наприклад, JS Promises, які виконуватимуться до кінця, навіть якщо їх ніколи не використовувати.