Size: a a a

WebAssembly — русскоговорящее сообщество

2021 March 02

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Существует много легковестных C++ компиляторов, но все они нацелены на кодогенерацию нативного кода при чем ограничиваются одной или двумя платформами. Таких что бы генерировать wasm я не встречал.
источник

m

mAX in WebAssembly — русскоговорящее сообщество
Товарищи, подскажите пожалуйста.. не смог нагуглить
Можно ли как-то собрать код на js для WASI?
так чтобы клиентские либы для nodejs работали..
Например код на js который пишет в mysql какие-то данные
Собрать этот код в WASM с WASI и запустить внутри rust wasmtime
такое возможно сейчас?
источник

m

mAX in WebAssembly — русскоговорящее сообщество
https://medium.com/wasmer/wasmer-js-9a53e837b80
нашел статейку на эту тему, но как-то все же не очень понятно есть ли гемор с существующими либами
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
mAX
Товарищи, подскажите пожалуйста.. не смог нагуглить
Можно ли как-то собрать код на js для WASI?
так чтобы клиентские либы для nodejs работали..
Например код на js который пишет в mysql какие-то данные
Собрать этот код в WASM с WASI и запустить внутри rust wasmtime
такое возможно сейчас?
Во-первых, не припоминаю чтобы JS компилировался в Wasm. Во-вторых, разве MySQL-интерфейс включили в WASI? Даже насчёт сокетов не уверен.
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
mAX
https://medium.com/wasmer/wasmer-js-9a53e837b80
нашел статейку на эту тему, но как-то все же не очень понятно есть ли гемор с существующими либами
Это вроде как прямо противоположно тому, что Вы спросили?
источник

m

mAX in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Во-первых, не припоминаю чтобы JS компилировался в Wasm. Во-вторых, разве MySQL-интерфейс включили в WASI? Даже насчёт сокетов не уверен.
блин, там нет сокетов??
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
mAX
блин, там нет сокетов??
Нету. Нока нету
источник

m

mAX in WebAssembly — русскоговорящее сообщество
я думал там типичное libc posix условно
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
mAX
блин, там нет сокетов??
Проверьте. Может, и добавили уже.
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
mAX
я думал там типичное libc posix условно
Нет. Там не может быть POSIX потому что модель доступа/безопасности другая.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
mAX
я думал там типичное libc posix условно
Нет, там скорее Capsicum а уже потом сильно урезанный POSIX
https://www.freebsd.org/cgi/man.cgi?capsicum(4)
источник

m

mAX in WebAssembly — русскоговорящее сообщество
Alexander Tchitchigin
Нет. Там не может быть POSIX потому что модель доступа/безопасности другая.
это про WASI речь? в браузере понятно зачем ограничения, а на обычной платформе они тоже соблюдаются?
зачем бы оно нужно..
я думал поддержка WASI это прямо новый универсальный кроссплатформенный вид бинарников с большинством posix фишек)
источник

m

mAX in WebAssembly — русскоговорящее сообщество
MaxGraey
Нет, там скорее Capsicum а уже потом сильно урезанный POSIX
https://www.freebsd.org/cgi/man.cgi?capsicum(4)
понятно, спасибо!)
источник

AT

Alexander Tchitchigi... in WebAssembly — русскоговорящее сообщество
mAX
это про WASI речь? в браузере понятно зачем ограничения, а на обычной платформе они тоже соблюдаются?
зачем бы оно нужно..
я думал поддержка WASI это прямо новый универсальный кроссплатформенный вид бинарников с большинством posix фишек)
Да про него. Потому что Capability-Based Access Control безусловно лучше, чем то что в POSIX. Как бы AppArmor/SELinux не с глупа и не случайно появились.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
@RPG18_87 Случшай, а случайно не BenchmarkNative-12 вместо BenchmarkNaive (Naive -> Native) должно быть здесь?
https://github.com/RPG-18/wasmer-go-assemblyscript#mandelbrot
источник

DM

Dmitry M in WebAssembly — русскоговорящее сообщество
Naive подразумевает "наивная" реализация. Прям вот в лоб "одинаковый"  код. Но результат удивил при использовании shrinkLevel=0
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry M
Naive подразумевает "наивная" реализация. Прям вот в лоб "одинаковый"  код. Но результат удивил при использовании shrinkLevel=0
Я думаю стоит назвать Native. Потому как сравнивается одна и та же реализация на нативном Go и AS. Но из названия этого не скажешь. Я сначала подумал, что это две разные реализвации (одна наивная, а вторая какая то продвинутая и на AssemblyScript=))
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Dmitry M
Naive подразумевает "наивная" реализация. Прям вот в лоб "одинаковый"  код. Но результат удивил при использовании shrinkLevel=0
Кстати а не пробовали запускать на последнем wasmtime?
https://github.com/bytecodealliance/wasmtime-go
источник

DM

Dmitry M in WebAssembly — русскоговорящее сообщество
Можно будет как-нибудь и посмотреть. Я сейчас жду нового релиза TinyGo, там расширят поддержку wasi https://github.com/tinygo-org/tinygo/pull/1659
источник

m

mAX in WebAssembly — русскоговорящее сообщество
Товарищи, создаю в расте виртуалку wasmtime
на расте же пример собираю..
rustc --target=wasm32-wasi ./script.rs/script.rs
без wasm_bindgen, но со всякими #[no_mangle] unsafe extern "C"
с простым примером все отлично.. коллбеки всякие работают в обе стороны!
но как оттуда в сеть залезть? мне http get хочется сделать..
reqwest не работает
Это вообще возможно из виртуалки wasmtime в сеть сходить?
источник