The OpenNET Project / Index page

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

Mozilla развивает прослойку для обеспечения переносимости между JavaScript и Rust

06.04.2018 10:05

Разработчик из команды Mozilla представил проект wasm-bindgen, в рамках которого ведётся создание прослойки для организации взаимодействия между JavaScript и кодом, скомпилированным в представление WebAssembly. В текущем виде проект сосредоточен на предоставление связки между языками JavaScript и Rust, но в будущем ожидается появление поддержки и других языков, включая C/C++.

Wasm-bindgen позволяет из частей на разных языках организовать доступ к строкам, объектам, классам и прочими структурам. Например, можно импортировать в Rust функциональность JavaScript, такую как возможности манипуляции с DOM, или наоборот экспортировать функциональность Rust в JavaScript, такую как классы и функции, обеспечить совместную работу со сложными типами, такими как строки, классы и объекты, несмотря на то, что спецификация WebAssembly предусматривает манипуляцию только с низкоуровневыми числовыми типами (u32, i32, f32, f64).

  1. Главная ссылка к новости (https://hacks.mozilla.org/2018...)
  2. OpenNews: Google прекращает поддержку Portable Native Client в пользу WebAssembly
  3. OpenNews: Технология WebAssembly признана готовой для включения в браузерах по умолчанию
  4. OpenNews: Chrome, Firefox и Edge перешли на новый этап тестирования технологии WebAssembly
  5. OpenNews: В Firefox, Chromium и Edge добавлена экспериментальная поддержка WebAssembly
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48399-webassembly
Ключевые слова: webassembly, javascript, rust, binding
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Диалектик (?), 10:56, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Вместо того чтобы наконец запилить аппаратное ускорение видео надмозги из мозиллы который год занимаются прокрастинацией. Печально.
     
     
  • 2.5, nazarpc (?), 11:31, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вы уверены что данным проектом занимается разработчик что разбирается в аппаратном ускорении видео?
     
     
  • 3.20, Аноним (-), 13:18, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А у них есть разработчик, который разбирается в аппаратном ускорении видео? Как правило, такие разовые задачи ставятся тому разработчику, который есть, а потом уже он разбирается в том, что для этого требуется.
     
     
  • 4.30, Аноним (-), 20:20, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть. В Windows и MacOS X же ускорение работает. Просто в линуксе вместо графической подсистемы иксы.
     
     
  • 5.32, Аноним (-), 20:23, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > в линуксе вместо графической подсистемы иксы.

    а вместо браузера файрфокс, ага.

     
     
  • 6.36, Афаф (?), 03:24, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вам никто не мешает поставить хр... Яндекс браузер
     
     
  • 7.40, Аноним (-), 13:39, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вам никто не мешает

    А вам никто не мешает поставить вейланд.

     
  • 5.39, Хряк (?), 10:08, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    в линуксе вместо графической подсистемы иксы.

    Были иксы, их выкинули на свалку. А под вейланд они еще сам бройзер не перевели.

     
  • 2.25, Anonim (??), 14:31, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас тендентиция идёт к тому, что во всех плеерах будет использоваться системный плеер с системными декодерами. Пилить что-то своё, а тем более под каждую железку, глупо.
     
     
  • 3.29, Аноним (-), 18:17, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    системный это типа MPV или это типа встроенный в браузер в рамках HTML5 <video> ?
     
  • 3.33, Аноним (-), 21:34, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А то ещё одной уязвимости в stagefright давно не находили!
     
  • 2.43, irinat (ok), 18:32, 08/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Правильно. Давайте ныть об этом на локальном веб-сайте. Это ведь так помогает...
     

  • 1.6, IB (?), 11:43, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Только я споткнулся глазом о WASM?
    Watcom как много в этом слове :)
     
     
  • 2.37, Валик228 (?), 07:51, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Watcom как много в этом слове :)

    ничего там нет, в слове этом. компилятор(ы) от Watcom были популярны только под МС-ДОС из-за отсутствия нормальной поддержки 32-битного режима в борланд и МС-овских компиляторах, а так же наличия Дос-екстендера в поставке.

     
     
  • 3.41, Аноним (-), 13:42, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > > Watcom как много в этом слове :)
    > ничего там нет, в слове этом. компилятор(ы) от Watcom

    ... вроде как оптимизировали гораздо лучше, чем микрософтские (про борланд вообще молчу, у них оптимизации были лишь самые базовые).

     

  • 1.7, Аноним (-), 11:48, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А они не хотят таки запилить такую спецификацию WebAssembly, которая бы позволяла обходится без ЖС совсем?
     
     
  • 2.8, Аноним (-), 12:06, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ты думаешь оно будет лучше, надежнее и быстрее? Но ведь оно будет тормознее потому что к дуум придется обращаться костылями и глючнее потому что webassembly сборщика мусора нет.
     
     
  • 3.10, Аноним (-), 12:32, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так он про это и говорит, чтобы уже наконец сделали апи для сборщика мусора и нормально обращение к дом апи, т.к. сейчас надо это всё делать через JS, то есть через те самые костыли
     
  • 2.9, Аноним (-), 12:07, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –6 +/
    есть же typescript и 100500 других языков. И webassembly для этого не нужна
     
     
  • 3.11, Аноним (-), 12:35, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    TS - компилируется в жс и в рантайме проблемы JS остаются, всё остальное работает очень медленно и потребляет больше ресурсов
     
  • 3.18, th3m3 (ok), 13:10, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    TS - это костыль. В конечном итоге, на выходе все равно js. Уж лучше сразу на js писать.
     
     
  • 4.26, афаф (?), 15:54, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На моей практике, обычный разработчик при переводе проекта на TS сталкивается с немного меньшим количеством попыток обращения к undefined.

    Но этот вебпак, gulp, tslint и прочие сборочные инструменты на крупных проектах так жестко тупят, что хотелось бы их больше никогда не видеть

     
     
  • 5.28, Аноним (-), 17:56, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вы просто не умеете их готовить
     
  • 2.13, Анонимусис (?), 12:50, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это java апплеты и флеш, лол. Но тогда браузер превратится в примитивный wget, а на таком денег не попилишь
     
     
  • 3.42, Аноним (-), 11:42, 08/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Oracle в 9 версии отказался от аплетов и даже web start (потому что ему Java не нужна). От flash пока не отказались кажется, но пытаются.
     
  • 2.14, Crazy Alex (ok), 12:51, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Хотят. В принципе, описанное - один из шагов.
     
  • 2.15, имя (?), 12:57, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это будет очень весело! сейчас жс-хейтеры ноют о тяжелых сайтах (вот в веб2.0 были времена), а потом как они взвоют от неотключаемых бинарных блобов!
     
  • 2.17, Аноним (-), 13:03, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >А они не хотят таки запилить такую спецификацию WebAssembly, которая бы позволяла обходится без ЖС совсем?

    ХD. Ты видать очень мало знаешь о Rust. Повесишь внутри функции onclick на элемент.. а Раст его по завершению функции почистил))) или попробуй одну и ту же функцию повесить на разные onclick - компилятор скажет что переменная уже заимствована. Да и область видимости у раста.. не видит переменные вне функции..

    Не знаю как этом идти в hrml DOM

     
     
  • 3.34, Ordu (ok), 22:35, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    его -- это кого Элемент Каким образом этот элемент попал в функцию Был созд... большой текст свёрнут, показать
     
  • 2.44, Ordu (ok), 21:41, 08/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А они не хотят таки запилить такую спецификацию WebAssembly, которая бы позволяла
    > обходится без ЖС совсем?

    Может и хотят, но пока рано рыпаться. Надо подождать, когда через все эти wasm-bindgen'ы появятся API для разных языков. Вот тогда можно будет оценить накопленный опыт и подумать о том, чтобы создать единый API, поверх которого будут строится эти. Тогда можно будет не просто скопировать жабаскриптовый API, но сделать лучше.

    Помимо этого, с этим API ведь есть ещё проблема, что mozilla не может решать такие проблемы в одиночку. То есть может наверное, но не факт, что гуглы всякие пойдут следом и подхватят. Надо сначала обсудить с гуглом и прочими и придти к консенсусу относительно этого API. А это время, во-первых, а во-вторых, надо иметь аргументы, а чтобы иметь аргументы нужен опыт, и тут мы возвращаемся к тому, что ещё не время. Вот когда будет на github'е десяток пристойных сайтов с активным использованием wasm, чтобы можно было пощупать и внутрь заглянуть, вот тогда можно будет о чём-то говорить.

     

  • 1.12, Диносуслик (?), 12:38, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Используйте ClojureScript
     
  • 1.16, Ne01eX (ok), 13:02, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ребята, может кто в курсе - есть ли движок JS, поставляемый отдельно от всего остального и не требующий для сборки стопицот ненужных вещей (autotools или cmake в самый раз)?
     
     
  • 2.21, Аноним (-), 13:26, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ребята, может кто в курсе - есть ли движок JS, поставляемый отдельно
    > от всего остального и не требующий для сборки стопицот ненужных вещей
    > (autotools или cmake в самый раз)?

    https://en.wikipedia.org/wiki/JavaScript_engine#Active_projects
    JerryScript вроде соответствует.

     
     
  • 3.22, Ne01eX (ok), 13:30, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Ребята, может кто в курсе - есть ли движок JS, поставляемый отдельно
    >> от всего остального и не требующий для сборки стопицот ненужных вещей
    >> (autotools или cmake в самый раз)?
    > https://en.wikipedia.org/wiki/JavaScript_engine#Active_projects
    > JerryScript вроде соответствует.

    Ваще ништяк, всё в цвет! То что нужно, беру. :-D Респект. :-)

     
  • 2.23, Аноним84701 (ok), 13:31, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Ребята, может кто в курсе - есть ли движок JS, поставляемый отдельно
    > от всего остального и не требующий для сборки стопицот ненужных вещей
    > (autotools или cmake в самый раз)?

    duktape
    http://duktape.org/
    [CODE]
    $ gcc -std=c99 -otest test.c duktape.c -lm
    $ ./test
    1+2=3
    [/CODE]

    https://mujs.com/
    gcc test.c -lmujs
    [CODE]
    cat test.c
    #include <stdio.h>
    #include <mujs.h>

    int main(int argc, char **argv)
    {
            char line[256];
            js_State *J = js_newstate(NULL, NULL, JS_STRICT);
            while (fgets(line, sizeof line, stdin))
                    js_dostring(J, line);
            js_freestate(J);
    }
    [/CODE]

     
     
  • 3.24, Ne01eX (ok), 13:38, 06/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >[оверквотинг удален]
    >         char line[256];
    >         js_State *J = js_newstate(NULL,
    > NULL, JS_STRICT);
    >         while (fgets(line, sizeof line,
    > stdin))
    >            
    >     js_dostring(J, line);
    >         js_freestate(J);
    > }
    > [/CODE]

    ducktape - не подходит. :-(
    muJS - тоже ништяк, тоже беру.

     

  • 1.27, qweo (?), 16:33, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > есть ли движок JS, поставляемый отдельно от всего остального

    А что ты пилишь-то?

     
     
  • 2.35, Ne01eX (ok), 01:53, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока только выпиливаю.

    Видят боги, я был фанатом продуктов Mozilla Foundation со времён основания Mozilla Foundation. Но настала пора прощаться. :-(

    Пока в качестве браузера использую links2, в качестве смотрелки youtube - palemoon, ну а дальше - видно будет. WebKitGTK в последней версии что-то тоже становится жирноват, так что вопрос с нормальным браузером для RTK неожиданно открыт. :-)

     
     
  • 3.45, freehck (ok), 09:19, 09/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Пока только выпиливаю.
    > Видят боги, я был фанатом продуктов Mozilla Foundation со времён основания Mozilla
    > Foundation. Но настала пора прощаться. :-(
    > Пока в качестве браузера использую links2, в качестве смотрелки youtube - palemoon,
    > ну а дальше - видно будет. WebKitGTK в последней версии что-то
    > тоже становится жирноват, так что вопрос с нормальным браузером для RTK
    > неожиданно открыт. :-)

    Кстати да, проблема с palemoon, не всё там можно делать. Я было подумал на него перейти с firefox, но выяснилось, что он уже протух сто лет в обед. Например он-лайн платежи через яндекс у меня в palemoon идти отказались.

    Лучше, чем links2, считаю -- w3m. У него ещё и обёртка в emacs есть. Но вообще это извращение.

    Обидно терять Firefox, столько на него было завязано в workflow. Но с тех пор, как они дропнули свои аддоны, делать ничего не остаётся.

     

  • 1.31, Аноним (-), 20:21, 06/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А, вот теперь ниша раста стала ясна. Через пару лет раст в 95% проектов будет транслироваться в яваскрипт и выполняться на ноде. Ещё через пару лет об этой прослойке между яваскриптом и программистом все забудут и раст превратится в очередной кофескрипт.
     
     
  • 2.38, Sfinx (ok), 07:52, 07/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ага, бесполезная трата времени - создавать каждый раз новую х#рь/язык чтобы оно появилось как еще один npm пакет из сотни строк.
    а вообще-то у анонимусов короткая память - первый javascript был сделан в Netscape. То-то чуваки подохр#нели во что он теперь превратился ;) Ну и все уже давно знают чем разницу между микрософтом и царем Мидасом - у царя все, к чему он прикасался, превращалось в золото, а у микрософта в г#вно.. Поэтому тут весьма показателен пример рукож#пого г#внософта, который не только не смог его испоганить своим жскриптом этот эту технологию но и феереично похоронил своего осла, тупо из-за врожденной неспособности скопировать дух языка...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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