Связь с Wasmtime WASI через HTTP/ сокеты
Существует потрясающий компилятор веб-сборки и виртуальная машина с именем Wasmtime, которые обеспечивают поддержку выполнения без какого-либо встраивания, что позволяет запускать приложения WASM напрямую из командной строки https://docs.wasmtime.dev/lang-bash.html
К сожалению, не существует официального способа выполнения HTTP / сетевой связи через WASI, поскольку HTTP / сокеты отсутствуют в моментальном снимке предварительного просмотра WASI, поэтому разработка любого полезного приложения через Wasmtime проблематична.
Чисто теоретически невозможно запустить какой-либо прокси-сетевой сервер, который выдает реальные TCP-соединения от хоста и взаимодействует с приложением Wasmtime через файловую систему по настраиваемому протоколу, но он кажется чрезмерно сложным и, возможно, влияет на плохую производительность.
Существуют такие решения, как https://github.com/deislabs/wasi-experimental-http, но это не подходит, поскольку требует написания пользовательской точки входа в Rust, установки инструментальной цепочки Rust и ее компиляции для множества целевых платформ вместо загрузки автономного исполняемого файла. файл с доверенного сайта https://wasmtime.dev/
Несколько недель назад я открыл проблему https://github.com/bytecodealliance/wasmtime/issues/3483, но, к сожалению, по ней нет прогресса или ответа.
Итак, основной запрос адресован команде Wasmtime: как это означало разрабатывать приложения для чтения с помощью среды выполнения Wasmtime, если какие-либо функции связи недоступны? В то же время активно развиваются экзотические расширения, такие как нейронные сети, поддержка HTTP / сырых сокетов hovewer является большей частью MVP.
Спасибо
1 ответ
Главный ответ на это, к сожалению, таков: нет, WASI еще не готова к такого рода вещам, но движется в этом направлении.
Для контекста, я основатель/сопровождающий Suborbital
Мы, например, создали собственный набор «облачных API» поверх основных сред выполнения Wasm (Wasmtime, WasmEdge, Wasmer) и представили их как библиотеку Go . По крайней мере, вам не нужны пользовательские версии чего-либо, мы связываем среду выполнения вместе с библиотекой.
На данный момент это лучший вариант, но есть надежда, что WASI устранит необходимость в пользовательских SDK/API, подобных нашим, в будущем.
Рады ответить на любые ваши вопросы!