Меня зовут Валерий Шавель, я из команды разработки векторного движка Яндекс.Карт. Недавно мы внедряли в движок технологию WebAssembly. Ниже я расскажу, почему мы её выбрали, какие результаты получили и как вы можете использовать эту технологию в своём проекте.
Рубрика «webassembly» - 3
Как мы внедряли WebAssembly в Яндекс.Картах и почему оставили JavaScript
2019-11-19 в 7:14, admin, рубрики: javascript, webassembly, Блог компании Яндекс, Разработка веб-сайтов, яндекс.картыWebAssembly: что и как
2019-11-14 в 0:00, admin, рубрики: asmjs, javascript, mozilla, wasi, web-разработка, webassembly, браузеры, Разработка веб-сайтов
Эта статья основана на моём выступлении на конференции ITSubbotnik, прошедшем 2 ноября 2019 года в Москве.
Вообще я бэкенд программист, но меня заинтересовала эта технология, она позволяет использовать мои знания бэкенда на фронте.
Проблема
Начнём с проблемы, которая решается этой (относительно новой) технологией. Проблема эта — быстро исполнять код в браузере. Быстро — это значит, «быстрее чем JavaScript», в идеале настолько быстро, насколько позволяет имеющийся у нас процессор.Читать полностью »
Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 2 — Компиляция с Emscripten
2019-10-28 в 11:24, admin, рубрики: ffmpeg, javascript, webassembly, Компиляторы, Работа с видеоСписок переведённых частей серии:
Начиная с этой части, материал будет посложнее, так что не стесняйтесь гуглить по ходу чтения, если не понимаете, что происходит.
К тому же я постараюсь задокументировать решение возможных проблем, чтобы вы смогли скомпилировать бибилиотеку со своими настройками.
В этой части мы разберём:
- Как настроить окружение для Emscripten в Docker
- Использование emconfigure и emmake
- Как решать проблемы, возникающие при компиляции FFmpeg с Emscripten
Рисуем звук
2019-10-04 в 9:05, admin, рубрики: aphex twin, Asm.js, fftw, javascript, webassembly, Алгоритмы, визуализация данных, звук, обработка аудио, преобразование фурье, спектрограмма, фонетикаПять лет назад на Хабре была опубликована статья «Печать и воспроизведение звука на бумаге» — о системе создания и проигрывания спектрограмм. Затем, полтора года назад Meklon опубликовал квест, в котором такая чёрно-белая логарифмическая спектрограмма стала одним из этапов. По авторскому замыслу, её надо было распечатать на принтере, отсканировать смартфоном с приложением-проигрывателем, и воспользоваться таким образом «надиктованным» паролем.
У меня в тот момент не было в досягаемости ни принтера, ни смартфона, так что меня заинтересовали два аспекта задачи:
- Как проще всего расшифровать спектрограмму без дополнительных устройств и без дополнительного софта — желательно, прямо в браузере?
- Можно ли её расшифровать вообще без софта — «на глаз»?
Портируем многопользовательскую игру с С++ на веб c Cheerp, WebRTC и Firebase
2019-09-20 в 8:53, admin, рубрики: c++, stun, TURN, udp, webassembly, WebRTC, Компиляторы, разработка игр, сетевые протоколы, Сетевые технологииВведение
Наша компания Leaning Technologies предоставляет решения по портированию традиционных desktop-приложений в веб. Наш компилятор C++ Cheerp генерирует сочетание WebAssembly и JavaScript, что обеспечивает и простое взаимодействие с браузером, и высокую производительность.
В качестве примера его применения мы решили портировать для веба многопользовательскую игру и выбрали для этого Teeworlds. Teeworlds — это многопользовательская двухмерная ретро-игра с небольшим, но активным сообществом игроков (в их числе и я!). Она мала как с точки зрения скачиваемых ресурсов, так и требований к ЦП и GPU — идеальный кандидат.
Работающая в браузере Teeworlds
Читать полностью »
Технологии, которые будут популярны в 2020 году
2019-08-01 в 12:11, admin, рубрики: graphql, javascript, pwa, React, Rust, webassembly, Блог компании Цифровые Экосистемы, Исследования и прогнозы в IT, прогнозы, Программирование, тренды, языки программирования
Хоть это и кажется невероятным, 2020 год уже вот-вот наступит. Эта дату мы до сих пор воспринимали как нечто сошедшее со страниц научно-фантастических романов, и тем не менее, дела обстоят именно так — до 2020 года совсем рукой подать.
Если вам любопытно, каким может оказаться будущее для мира программирования, то вы по адресу. Возможно, я ошибаюсь по каждому пункту — не считайте мои слова непогрешимой истиной — однако ниже я изложу свои соображения о том, что нас ждет. Дара провидения у меня нет, но я могу сделать некоторые предположения на основании доступных данных.
Читать полностью »
WASM Meet Up 1-08
2019-07-23 в 12:02, admin, рубрики: Blazor, C#, java, jvm, lightbeam, raiffeisenIT, Rust, wasi, webassembly, Блог компании Райффайзенбанк, конференцииПриглашаем на митап, посвященный технологии WebAssembly, который пройдет на площадке Райффайзенбанка в Нагатино 1 августа. Послушаем доклады Raiffeisen Digital, Parity Technologies и Mozilla напрямую из Сан-Франциско.
Компиляция C в WebAssembly без Emscripten
2019-06-05 в 5:54, admin, рубрики: C, clang, Emscripten, libc, LLVM, malloc, wasm, wasm-ld, WAT, webassembly, бамп-аллокатор, КомпиляторыКомпилятор — часть Emscripten. А что, если удалить все свистелки и оставить только его?
Emscripten необходим для компиляции C/C++ в WebAssembly. Но это гораздо больше, чем просто компилятор. Цель Emscripten в том, чтобы полностью заменить ваш компилятор C/C++ и запустить в вебе код, который изначально не предназначен для Сети. Для этого Emscripten эмулирует всю операционную систему POSIX. Если программа использует fopen(), то Emscripten предоставит эмуляцию файловой системы. Если используется OpenGL, то Emscripten предоставит С-совместимый контекст GL, поддерживаемый WebGL. Это немалая работа, и немало кода, который придётся внедрить в итоговый пакет. Но можно ли просто… удалить его?
Читать полностью »
Wasmer: самая быстрая Go-библиотека для выполнения WebAssembly-кода
2019-06-04 в 9:30, admin, рубрики: Go, webassembly, Блог компании RUVDS.com, разработка, Разработка веб-сайтовWebAssembly (wasm) — это переносимый бинарный формат инструкций. Один и тот же код wasm-код может выполняться в любой среде. Для того чтобы поддержать данное утверждение, каждый язык, платформа и система должны быть в состоянии выполнять такой код, делая это как можно быстрее и безопаснее.
Решение японских кроссвордов c P̶y̶t̶h̶o̶̶n̶ Rust и WebAssembly
2019-06-03 в 9:23, admin, рубрики: python, Rust, wasm, webassembly, Алгоритмы, нонограммы
Как сделать решатель (солвер) нонограмм на Python, переписать его на Rust, чтобы запускать прямо в браузере через WebAssembly.