Специалисты из Mozilla представили проект WASI (WebAssembly System Interface), который подразумевает разработку API для создания обычных приложений, выполняемых вне браузера. При этом речь изначально идёт о кроссплатформенности и высоком уровне безопасности таких приложений.
Как отмечается, они запускаются в специальной «песочнице» и имеют доступ к файлам, файловой системе, сетевым сокетам, таймерам и так далее. При этом программа может выполнять только заведомо разрешённые действия.
Учитывая, что псевдокод WebAssembly является платформонезависимым вариантом языка Assembler, использование JIT позволит добиться высокой производительности кода, на уровне нативных приложений. На данный момент представлена реализация базовых POSIX API (файлы, сокеты и т. п.), но в нём пока нет поддержки блокировок и асинхронного ввода/вывода. В будущем ожидается появление модулей для криптографии, работы с 3D-графикой, датчиками и мультимедиа.
Также следует отметить, что проект Fastly представил компилятор Lucet для WebAssembly-приложений. Он позволяет безопасно выполнять сторонние программы на WebAssembly внутри других приложений, например, это подходит для плагинов. Сам компилятор написан на языке Rust, при этом он поддерживает код на С, Rust и TypeScript.
Разумеется, остаётся ещё немало вопросов к безопасности такого подхода. Выполнение кода в «песочнице» весьма странно сочетается с доступом к функциям основной системы, так что этот вопрос ещё нуждается в прояснении. Кроме того, не ясно, какие именно программы должны работать в таком режиме и как нужно будет отслеживать их поведение.
Оставить сообщение