Wasm up?
39 subscribers
2 photos
26 links
WebAssembly: новости, практика, разборы и многое другое.

Первое русскоязычное сообщество, посвященное WASM.
Download Telegram
#wasm_lab

Сегодня у нас на обзоре статья "Dynamic linking in WebAssembly with WASIX" от команды Wasmer.

Главная идея очень простая - Python в WASIX наконец-то научился работать не только с "чистыми" Python-пакетами, но и с библиотеками, которые содержат нативный код. Это стало возможным благодаря поддержке Dynamic Linking.

Но реализовать это в WASM оказалось совсем не так просто.

В статье авторы показывают, какие проблемы пришлось решить:

🔹 Как заставить несколько WASM-модулей безопасно разделять одну область памяти.

🔹 Что такое PIC (Position Independent Code) - код, который можно загрузить в любое место памяти без перекомпиляции, и почему без него Dynamic Linking невозможен.

🔹 Как работают dlopen() (загрузка внешней библиотеки во время работы программы) и dlsym() (поиск нужной функции внутри этой библиотеки), если под капотом у вас WASM а не обычная ОС.

🔹 Почему ради всего этого команде даже пришлось дорабатывать LLVM и собственный рантайм.

Отличная статья, которая показывает, сколько фундаментальных ограничений WASM приходится обходить, чтобы привычные механизмы из мира Linux начали работать и здесь.

#wasm #webassembly #python #wasix

@prowasm
👍4