Добрый день!
libgreen в Rust основан на libuv, поэтому да, переключение контекста при работе с сокетами там есть.
Однако
libgreen больше не будет входить в стандартную поставку Rust, потому что расходы на поддержание одинакового API для различных рантаймов оказались слишком высоки. Такой подход накладывает серьёзные ограничения на производительность и выразительность API, усложняет создание кроссплатформенного кода и не даёт особых преимуществ. В частности, из-за отсутствия (и принципиальной невозможности добавить, потому что Rust - системный язык, близкий к железу) точек переключения контекста кроме вызовов функций в рантайме, а также из-за недостатков в реализации самого libuv (ну и из-за отсутствия особого желания в развитии самого libgreen) производительность libgreen сейчас очень низкая, гораздо ниже Go и других гринтредовых рантаймов.
Общий план - перевести стандартную библиотеку исключительно на работу с нативным блокирующим вводом-выводом и нативными же тредами, а асинхронный ввод-вывод и другие модели многопоточности предоставлять сторонними библиотеками. Например, есть активно развивающаяся библиотека
mio, которая предоставляет асинхронные сокеты через нативный event loop.