вроде как все инструменты есть - async, await, Future. Почему люди подключают tokio, async-std ?
В стандартной библиотеке только инструменты, кирпичики для работы с асинхронностью. Нужен ещё кто-то, кто будет задачи спавнить, определять их приоритеты, останавливать, и прочее. Этим и занимаются tokio/async-std. В принципе, никто не мешает сделать свою реализацию.
То есть нужен какой-то асинхронный рантайм, что tokio и предоставляет? Я правильно понимаю? Сам я сейчас читаю tokio.rs, https://rust-lang.github.io/async-book/, просто хотелось бы иметь общее понятие.
Да. У токио в их книге есть поэтапный гайд по написанию игрушечного рантайма. Почему игрушечного? В реальном много больше оптимизаций, обработки краевых случаев и так далее. Но оно работает.
Спасибо. Немного уже общая картина складывается.
Обсуждают сегодня