Вышел WASI 0.3.0: нативная асинхронность поверх Component Model

Релиз WASI 0.3.0 официально закрепляет асинхронность как родную фичу WebAssembly Components, избавляя от обходных приёмов прошлых версий. Там, где WASI 0.2 требовала ресурсов pollable и input-stream, теперь напрямую используются future
Изменения затронули все модули. В CLI переработан stdio через стримы и future, в sockets унифицированы коды ошибок TCP/UDP, в filesystem потоковые операции и обход директорий переведены на пары stream-плюс-future, а в clocks упорядочили терминологию (wall-clock стал system-clock). Особенно заметен HTTP: новые миры service и middleware позволяют сцеплять сервисы и компоновать компоненты напрямую вместо сетевых вызовов. Это смещает акцент на эргономику и производительность: микросервисы могут собираться внутри процесса, а не общаться по сети, что потенциально срезает задержки с миллисекунд до наносекунд.
Ключевые факты
- async стал нативной возможностью компонентов WebAssembly
- future
и stream вместо pollable и input-stream из WASI 0.2 - Пары start/finish схлопнуты в одно объявление async func
- Ресурс network убран из wasi:sockets; доступ через импорты мира
- HTTP-миры service и middleware позволяют компоновать компоненты без сети