Я создаю полный DSL Тьюринга в Rust для Интернета, используя wasm-bindgen. Мне нужна возможность загружать произвольный код WASM из Интернета, а затем использовать функции из этого файла в моем DSL. Я имею в виду динамическое связывание с эквивалентом dlopen
.
Я понятия не имею, как на самом деле этого добиться.
Из чтения документов WebAssembly у меня складывается впечатление, что это действительно возможно, но я недостаточно осведомлен, чтобы понять подробности процесса из этого документа.
В справочнике wasm-bindgen есть глава , подробно описывающая, как создавать экземпляры модулей WebAssembly из модулей WebAssembly! , но, похоже, это делается с помощью JavaScript, который кажется неоптимальным и не что описывает документ WebAssembly.
В js-sys можно создавать функции JavaScript из произвольных строк, но по сути это вызывает Function(/* some arbitrary string */)
со стороны JavaScript, что опять-таки кажется неоптимальным, а не то, что описывает документ WebAssembly.
Возможно ли это или есть какой-то другой более подходящий способ достижения моей цели?