Можно ли сделать динамическое связывание в WebAssembly с Rust? - PullRequest
0 голосов
/ 24 января 2019

Я создаю полный DSL Тьюринга в Rust для Интернета, используя wasm-bindgen. Мне нужна возможность загружать произвольный код WASM из Интернета, а затем использовать функции из этого файла в моем DSL. Я имею в виду динамическое связывание с эквивалентом dlopen.

Я понятия не имею, как на самом деле этого добиться.

Из чтения документов WebAssembly у меня складывается впечатление, что это действительно возможно, но я недостаточно осведомлен, чтобы понять подробности процесса из этого документа.

В справочнике wasm-bindgen есть глава , подробно описывающая, как создавать экземпляры модулей WebAssembly из модулей WebAssembly! , но, похоже, это делается с помощью JavaScript, который кажется неоптимальным и не что описывает документ WebAssembly.

В js-sys можно создавать функции JavaScript из произвольных строк, но по сути это вызывает Function(/* some arbitrary string */) со стороны JavaScript, что опять-таки кажется неоптимальным, а не то, что описывает документ WebAssembly.

Возможно ли это или есть какой-то другой более подходящий способ достижения моей цели?

1 Ответ

0 голосов
/ 28 января 2019

Поддержка динамической компоновки в llvm / lld для WebAssembly все еще в стадии разработки .Я полагаю, что динамическое связывание в Rust в настоящее время блокируется при поддержке динамического связывания в llvm / lld в более общем смысле.

...