The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Представлен Lucet, компилятор для WebAssembly"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от opennews (ok), 29-Мрт-19, 21:17 
Следом за технологией WASI (https://www.opennet.ru/opennews/art.shtml?num=50406) (WebAssembly System Interface), нацеленной на использование WebAssembly вне браузера, представлен (https://www.fastly.com/blog/announcing-lucet-fastly-native-w...) проект Lucet (https://github.com/fastly/lucet), предлагающий компилятор lucetc и runtime для выполнения программ в формате WebAssembly. Lucet позволяет скомпилировать модули в псевдокоде WebAssembly (.wasm или .wat) в машинный код, пригодный прямого исполнения. Результат сохраняется в виде разделяемой библиотеки или объектных файлов, которые можно связать с приложениями на языках Си или Rust. Код проекта написан на языке Rust и распространяется (https://github.com/fastly/lucet) под лицензией Apache 2.0.


Основной задачей проекта является предоставление возможности безопасного исполнения сторонних программ на WebAssembly внутри других приложений (например, для реализации плагинов). Исходные приложения для встраивания могут быть написаны на языках Си (компилируется в  WebAssembly при помощи clang), Rust и AssemblyScript (https://github.com/AssemblyScript/assemblyscript) (TypeScript). Для использования в окружении WebAssembly предлагается Си-библиотека lucet-builtins, предоставляющая базовые функции libc.

Проектом поставляется  runtime для модулей, скомпилированных при помощи lucetc. Указанный runtime предоставляет функции для загрузки модулей из объектных файлов, их активации и организации вызова функций из базового приложения. Lucet-runtime также выполняет задачи по управлению ресурсами для каждого экземпляра  WebAssembly и обработке исключений, возникающих при сбоях.  Компонент может использоваться как crate-пакет для Rust  или как разделяемая библиотека для Си.


Дополнительно предлагается  Lucet-wasi, расширение к runtime с реализацией режима изоляции и системных прослоек WASI (https://www.opennet.ru/opennews/art.shtml?num=50406), позволяющих напрямую запускать WebAssembly-приложения с применение расширенных механизмов контроля доступа и с возможностью обращения к ресурсам системы (файлы, сокеты и т.п.). Lucet-wasi также может использоваться в виде библиотеки для интеграции поддержки  WASI в другие приложения. В настоящее время lucet-wasi пока поддерживает только запуск в Linux-системах на базе архитектуры x86-64.


Код открыт компанией Fastly, которая использует Lucet в качестве основы движка облачных вычислений, использующего WebAssembly для обработчиков. Так как модель "edge cloud" подразумевает запуск обработчика на каждый запрос, а запросов может быть десятки тысяч в секунду, проект изначально рассчитан на потребление минимальных ресурсов и очень быстрый запуск новых экземпляров окружений для выполнения WebAssembly. Запуск модуля WebAssembly  производится менее чем на 50 микросекунд, а дополнительное потребление памяти составляет всего несколько килобайт на каждый экземпляр (для сравнения движок  Chromium V8 требует для запуска  JavaScript или WebAssembly  5 миллисекунд и десятки мегабайт).


Для достижения подобного уровня производительности программы WebAssembly запускаются в рамках одного процесса  с изоляцией на уровне runtime, который предоставляет каждой программе WebAssembly доступ только к собственным ресурсам. В отличие от других окружений для выполнения WebAssembly, в Lucet используется не JIT, а полноценная упреждающая компиляция в машинный код (AOT, ahead-of-time).

URL: https://www.fastly.com/blog/announcing-lucet-fastly-native-w...
Новость: https://www.opennet.ru/opennews/art.shtml?num=50418

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Представлен Lucet, компилятор для WebAssembly"  +7 +/
Сообщение от grayich (ok), 29-Мрт-19, 21:17 
ожидаемо

а вообще всё плохо, а будет ещё хуже.. ага

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Представлен Lucet, компилятор для WebAssembly"  –5 +/
Сообщение от Аноним (2), 29-Мрт-19, 21:23 
А зачем городить лишние сущности?
В примерах берут код на Си, компилируют clang-ом в WebAssembly, а потом  WebAssembly компилируют в машинный код. Почему сразу в машинный код не скомпилить в shared-библиотеку, а для изоляции какой-нибудь готовый sandbox не использовать? Тот же Sandboxed API от Google о котором новость пару недель назад была https://www.opennet.ru/opennews/art.shtml?num=50349
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Представлен Lucet, компилятор для WebAssembly"  –2 +/
Сообщение от имя (?), 29-Мрт-19, 21:40 
Напрямую скомпилированный машинный код, во-первых, не переносим, во-вторых, не предотвращает фокусов вроде манипуляции указателями или прямого вызова сисколлов, а исполнять ведь предполагается засланный пользователем код. Да и си там, скорее, для примера взят, в большинстве своём люди всё равно будут компилировать из привычных им джаваскриптов.

Здесь скорее напрашивается вопрос о причинах NIH при наличии JVM/CLR.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Представлен Lucet, компилятор для WebAssembly"  –1 +/
Сообщение от Илья (??), 29-Мрт-19, 21:58 
Зачем исплнять код, которому не доверяешь?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (-), 29-Мрт-19, 22:16 
Чтобы деньги за это получать же.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "Представлен Lucet, компилятор для WebAssembly"  +2 +/
Сообщение от Crazy Alex (ok), 29-Мрт-19, 22:47 
джаваскрипты в wasm? Где ж такое? Знаю си, плюсы, вроде go был... джаваскрипт в wasm совать - это вообще бессмвыслица какая-то
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

33. "Представлен Lucet, компилятор для WebAssembly"  +1 +/
Сообщение от НяшМяш (ok), 31-Мрт-19, 17:30 
Наоборот, вебмакаки ликуют. Теперь, вместо изучения нормального языка для разработки нормальных приложений, достаточно будет в свой вебпук.жиэс поставить плагин, который будет компилять их творчество в васм. Вебмакаки целы и юзеры довольны производительности.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

3. "Представлен Lucet, компилятор для WebAssembly"  –1 +/
Сообщение от Аноним (3), 29-Мрт-19, 21:39 
Я вот джва года жду транслятор wasm -> llvm.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Анон Анонов (?), 29-Мрт-19, 22:05 
wasm это таргет llvm. Какой смысл обратно компилить, да ещё и с потерей информации?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (3), 29-Мрт-19, 22:18 
>Какой смысл обратно компилить, да ещё и с потерей информации?

Очевидно же - когда нет исходника.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

14. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от ig0r (??), 29-Мрт-19, 22:53 
То есть вы планируете запускать код не имея исходников? присылайте мне wasm бинарник, я сконвертирую.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

23. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (3), 30-Мрт-19, 09:08 
Смысл в том, чтобы почти похоронить пакеты, специфичные для архитектур. То есть я компилирую нейтив-код в васм, кладу васм-байткод в пакет. При установке васм преобразуется в llvm и компилируется в нативную библиотеку, с которой можно делать всё то, что и с нативной библиотекой, собранной из C++.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

25. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от КО (?), 30-Мрт-19, 10:34 
>Смысл в том, чтобы почти похоронить пакеты, специфичные для архитектур. То есть я компилирую нейтив-код в васм,

Не забываем, что wasm это фигня, которая по идейным соображениям безопасности не может взаимодействовать с оборудованием, а значит пользователем и сетью, зато переносимая. При таком подходе оно даже питон заменить не в силах.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

27. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (27), 30-Мрт-19, 10:37 
> Смысл в том, чтобы почти похоронить пакеты, специфичные для архитектур.

Вот это дело! Тогда и необходимость в открытых исходниках пропадёт. ;-)

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

31. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от ig0r (??), 31-Мрт-19, 08:50 
Если вы считаете, что открытые исходники нужны только для того, чтобы приложение можно было пересобрать для других архитектур, то это далеко не правда.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

9. "Представлен Lucet, компилятор для WebAssembly"  –1 +/
Сообщение от Аноним (-), 29-Мрт-19, 22:19 
Представляю как браузер внутри себя будет делать сначала:
$ lucetc-wasi hello.wasm -o hello.so
а потом:
$ lucet-wasi hello.so.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Crazy Alex (ok), 29-Мрт-19, 22:49 
браузер wasm умеет исполнять прямо сейчас, никакие сторонние кмопиляторы ему для этого не нужны
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

19. "Представлен Lucet, компилятор для WebAssembly"  –1 +/
Сообщение от Аноним (-), 30-Мрт-19, 00:57 
Как следует из текста новости, сейчас он это умеет не слишком оптимально.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

37. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от abcemail (??), 02-Апр-19, 00:58 
идея как раз в том чтоб компилировать однажды исполнять wasi напрямую без компиляции
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

10. "Представлен Lucet, компилятор для WebAssembly"  –2 +/
Сообщение от X4asd (ok), 29-Мрт-19, 22:39 
> Результат сохраняется в виде разделяемой библиотеки или объектных файлов, которые можно связать с приложениями на языках Си или Rust. [...] возможности безопасного исполнения сторонних программ на WebAssembly внутри других приложений

разбежались с "безопасным".

Спектр (который будут исправлять последущие 10 лет) не даст возможности так просто взять и "безопасно" исполнить

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Crazy Alex (ok), 29-Мрт-19, 22:50 
поруби таймеры и будет счастье. Впрочем, что-то другое найдётся. Песочницы и недоверенный код - это всегда игры с огнём.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Представлен Lucet, компилятор для WebAssembly"  –2 +/
Сообщение от Аноним (15), 29-Мрт-19, 23:23 
Одни и те же библиотеки для браузера и десктопа. Да еще и на любом компилируемом языке...
Разработчики молодцы, раньше о таком только и мечтать можно было.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (22), 30-Мрт-19, 08:15 
Как Java-апплеты?
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

24. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (3), 30-Мрт-19, 09:10 
Как ActiveX + .Net или как Silverlight
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

26. "Представлен Lucet, компилятор для WebAssembly"  +1 +/
Сообщение от КО (?), 30-Мрт-19, 10:36 
Нет java апплеты нужны были для взаимодействия с оборудованием через песочницу. WASM чистая числодробилка.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

30. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Анонимчжан (?), 30-Мрт-19, 22:27 
еще одно ненужно типа электрон.))
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

36. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от X4asd (ok), 01-Апр-19, 15:36 
> еще одно ненужно типа электрон.))

ну полезность электрона в том что он отвлёк на себя горе-программистов (js-обезъянок со своими реактами)

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

16. "Представлен Lucet, компилятор для WebAssembly"  +1 +/
Сообщение от Анонимemail (16), 30-Мрт-19, 00:31 
А чем это отличается от "программа на любом языке" которая общается с внешним миром через "безопасную" libc (ну например на rust) с изоляцией и контролем доступа?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Представлен Lucet, компилятор для WebAssembly"  +1 +/
Сообщение от Анонимemail (16), 30-Мрт-19, 00:32 
А чем это отличается от "программа на любом языке" которая общается с внешним миром через "безопасную" libc (ну например на rust) с изоляцией и контролем доступа?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Иваныч (??), 30-Мрт-19, 00:40 
Теперь таки можно будет написать язык программирования где целевое использование будет WebAssembly, а при желании можно в нативный код при помощи упомянутого инструмента. Зачем? Just for fun, конечно же. Как минимум вариация на тему WebAssembly Little C без оптимизаций и просто более читаемое представление того что будет уже в "ASM" от WebAssembly. Бесполезно, но интересно.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "Представлен Lucet, компилятор для WebAssembly"  +1 +/
Сообщение от Аноним (28), 30-Мрт-19, 10:41 
>  можно будет написать язык программирования где целевое использование будет WebAssembly

https://github.com/AssemblyScript/assemblyscript

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Аноним (20), 30-Мрт-19, 07:38 
замечательно - а есть pascal там поддерживается?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Представлен Lucet, компилятор для WebAssembly"  +1 +/
Сообщение от Аноним (21), 30-Мрт-19, 08:03 
Вы вспоминаете свой любимый язык в каждой новости про программирование. Очевидно, Вам не дает покоя мысль, что давая Вам его в 90-х в школах РФ, Вас намеренно или по глупости заставили учить то, что никому не сдалось, особенно в остальной вселенной.  
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

29. "Представлен Lucet, компилятор для WebAssembly"  +3 +/
Сообщение от Аноним (29), 30-Мрт-19, 15:05 
> что давая Вам его в 90-х в школах РФ, Вас намеренно или по глупости заставили учить то, что никому не сдалось, особенно в остальной вселенной.

Специалиста-знатока по школам вне РФ, ненужности навыка написания чистого и структурированного кода и вообще, по целым вселенным, вижу я.
Отчего-то правда создается впечатление, что спицилист сугубо опеннетный, у которого от упоминания паскаля просто начинает подпекать.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

32. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от аноним2019 (?), 31-Мрт-19, 11:49 
просто оставлю это сдесь

https://lazarusccr.github.io/apps/

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

35. "Представлен Lucet, компилятор для WebAssembly"  –1 +/
Сообщение от x3who (?), 01-Апр-19, 11:03 
"37 apps in our registry" - странно что так мало, язык же действительно хороший.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

34. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от НяшМяш (ok), 31-Мрт-19, 17:32 
Тебе нужно - напиши патч.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

38. "Представлен Lucet, компилятор для WebAssembly"  +/
Сообщение от Брат Анон (?), 02-Апр-19, 08:25 
Вася поверх Люси? Извращенцы какие-то))
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру