Стандартная библиотека научилась работать с WebAssembly WASIp2 напрямую, без преобразования в WASIp1

03.09.2025

Стандартная библиотека Rust получила нативную поддержку платформы wasm32-wasip2. Раньше вызовы для неё преобразовывались в модель предыдущего поколения — теперь идут напрямую в интерфейсы нового поколения.

Что такое WASIp2

Это интерфейс взаимодействия с внешним окружением для WebAssembly: файлы, сокеты, аргументы командной строки, часы. Проекции WebAssembly не имеют доступа к операционной системе, поэтому такие возможности даются через отдельный слой.

У WASIp1 доступ был бедным, и этого часто не хватало. Новое поколение интерфейса богаче, и главное — не требует преобразований на стороне Rust.

Почему это заметно

Для кода на Rust изменение выглядит незаметным — интерфейсы совместимы настолько, насколько позволяет платформа. Но есть вторая сторона: приложение, собранное для нового поколения, получает доступ к возможностям, которых не было, без всяких переходников на стороне приложения.

Отдельно в том же месяце для платформы написаны собственные реализации стандартного ввода-вывода вместо переиспользования кода от предыдущего поколения — то есть работа шла именно о том, чтобы не тащить старую модель.

Оригинал

std: Start supporting WASIp2 natively

Упоминаний: 1 · Просмотров: 2