Середовища виконання
Середовище виконанняe забезпечує підтримку асинхронного виконання операцій (реактор) і відповідає за виконання ф’ючерсів (виконавець). Rust не має "вбудованого" середовища виконання, але доступні кілька варіантів:
- Tokio: ефективний, із добре розвиненою екосистемою функціональності, наприклад Hyper для HTTP або Tonic для gRPC.
- async-std: прагне бути "std for async" та включає базове середовище виконання в
async::task
. - smol: простий і легкий
Кілька великих програм мають власний час виконання. Наприклад, Fuchsia вже має один.
-
Зверніть увагу, що з перелічених середовищ виконання лише Tokio підтримується на ігровому майданчику Rust. Ігровий майданчик також не дозволяє будь-який ввід-вивід, тому більшість цікавих асинхронних речей не можуть працювати на ігровому майданчику.
-
Ф'ючерси "інертні" в тому, що вони нічого не роблять (навіть не починають операцію вводу-виводу), якщо немає виконавця, який їх опитує. Це відрізняється від, наприклад, JS Promises, які виконуватимуться до кінця, навіть якщо їх ніколи не використовувати.