сервер, но не хочется выбирать (или ещё хуже придумывать) каким языком, то можно встроить WASM, и для пятёрки популярных языков набросать тоненькие хелперы, чтоб байтики собирать/разбирать в идиоматичные объекты языка и на этом закончить?
Если хочется дать пользователям что-то скриптовать, следует поубавить амбиции😉
проблематичность встраивания языка растёт с количеством языков нелинейно в среднем
ну вон wasmer выше посоветовали , похоже то что нужно. Сервер встраивает wasmer , пользователи компилят свои программки в wasm , сервер их выполняет. Пользователи пишут на любом языке и всё работает )
для этого нужно, чтобы любой язык пользователя компилился в WASM
Зачем такие сложности? Что ты там такое разрабатываешь?
наоборот не хочу сложностей, просто не хочу за пользователей выбирать язык
в WASM можно компилировать Rust, C и с натяжкой C++
так что будет у тебя право у пользователей выбирать любой язык, пока этот любой язык — Rust
Будет у него половина юзеров запускать свой питон GC, а вторая половина криптомайнеры, тогда подумает над тем как правильно было бы сделать😉
Ты уверен что у тебя хватит человеко-часов чтобы покрыть все возможные уязвимости запуска абстрактной непроверенной тьюринг-полной программы с эффектами на твоём сервере?
это и ограничением на один язык не решается
Становится сильно проще. Но все равно, да, ощущение оверинжиниринга весь разговор созраняется.
почему с эффектами? какие функции выставлю в wasm, такие и будут
Давай так: ты говоришь чё хочешь, мы говорим как сделать проще
хочу дать пользователям что-то вроде UDF (user defined function) над данными в сервере.Ну и на события обработчики. Всё гермитично и синхронно. Раньше бы дал lua какой-нибудь, а сейчас посмотрел на wasm и подумал, может лучше его и тогда пользователи сами на чём захотят (ну, что умеет в wasm собираться) , на том и напишут.
я утверждаю, что больше скриптовых языков умеют собираться в Lua, чем в WASM
Ты хочешь чтобы у тебя ради user defined function запускался JRM (Java Runtime Machine)?
Ну а потом Lua уже в wasm :) И вообще языков много нативно: https://github.com/appcypher/awesome-wasm-langs
ну ребят из CloudFlare это не остановило, а у них нагрузки поболее моих будут: https://blog.cloudflare.com/webassembly-on-cloudflare-workers/ :) Да и пользователи пока внутренние, просто хочу избежать "не будем пользоваться, потому что привыкли к другому языку"
запуск серьёзной части этих языков в WASM потребует нетривиальных усилий со стороны пользователя
lua обычный ответ на такие вопросы
Обсуждают сегодня