Рубрика «webassembly» - 2

Пишем игру от первого лица в 2КБ на Rust - 1

Введение

Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.

Моя цель — показать, что сложную задачу можно разбить на более простые части, и если я всё сделаю правильно, то у вас появится ощущение, что вы сами открыли, как работает игра.

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать полностью »

В этой небольшой заметке предлагается рассмотреть несколько способов компиляции модуля для WebAssembly, используя три разных подхода. Мы реализуем решение одной и той же задачки на трёх языках и скомпилируем полученный код в модуль WebAssembly. Будем использовать:

  • Emscripten для компиляции кода, написанного на c++

  • AssemblyScript для компиляции кода, написанного на, собственно, AssemblyScript

  • wasm-pack для компиляции кода, написанного на Rust

План такой:

  • Во введении мы обсудим постановку задачи и немножко поговорим о технологии WebAssembly

  • Читать полностью »

Консоль SSH на WebAssembly внутри браузера: как это сделано - 1

Веб-консоль SSH запускается по нажатию кнопки на сайте

Почти у каждого VPS- и облачного провайдера есть веб-клиент SSH, который запускается через браузер. Такое приложение помогает вам подключиться по SSH к своим виртуальным машинкам на удалённом сервере, не выходя из браузера.

В наше трудное время безопасность не бывает лишней, а область использования SSH и RDP сильно расширяется. Есть смысл шифровать каналы связи при подключении к любым устройствам, в том числе в своей домашней сети. Например, из любой точки мира вы можете подключиться к домашнему компьютеру в РФ и работать внутри страны — заходить на местные сайты типа госуслуг, сбера, оплачивать пошлины, оформлять документы и т. д.

К счастью, существуют удобные инструменты для выполнения всех этих задач.
Читать полностью »

Используем клиентский процессор по максимуму. Часть 2: SIMD + мультипоточность - 1


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

В предыдущей части мы нарисовали фрактал Ньютона с помощью WebAssembly на Rust. В этой части мы задействуем SIMD команды и параллельные вычисления, чтобы добиться ещё большей производительности.

Вживую увидеть прирост скорости можно на онлайн-демо. На моём компьютере она составляет ~900% по сравнению с обычной реализацией на wasm.
Читать полностью »

Оптическое распознавание символов с помощью Rust и WebAssembly - 1


После переписывания Cyberscore я захотел отправить на сайт какие-нибудь результаты. Последнее, во что я играл, это Pokémon Legends: Arceus, по которой на Cyberscore есть около 3000 таблиц результатов. Я не собирался отправлять столько рекордов вручную, поэтому начал придумывать инструмент для автоматизации этого процесса.

Эта статья посвящена двум вещам: процессу извлечения результатов из JPG с помощью Rust и встраиванию этого функционала во фронтенд Cyberscore.
Читать полностью »

Вангеры - это одна из самых почитаемых и технологичных игр своего времени (1998 год), и она продолжает жить и развиваться. Благодаря сплоченному сообществу игра получила множество усовершенствований: HD, 60 FPS, новые сетевые режимы и много другое. Vange-rs один из интереснейших проектов по Вангерам. Это rust версия игры, основной изюминкой которой является 3D рендер основанный на wgpu.

Трассировка лучей (vange-rs)
Трассировка лучей (vange-rs)

wgpuЧитать полностью »

Почему сооснователь Wasmer ушёл из компании? - 1

4 октября 2021 года — последний день работы одного из основателей Wasmer в компании. Wasmer — стартап, который разрабатывает очень популярную одноимённую среду выполнения WebAssembly. Речь пойдёт о том, чего автору статьи удалось достичь за время работы в компании.

Читать полностью »

12 октября Майкрософт прекращает поддержку Silverlight. С одной стороны - ок, все-равно никто им уже не пользуется. А с другой, выясняется, что есть много компаний, которые 10+ лет назад написали свои внутренние продукты на Silverlight и успешно все это время работают. А сейчас нету ни людей знакомых с бизнес логикой этих приложений, ни времени/возможности/знаний все это переписать с нуля.

Мы попытались бросить соломинку таким компания и выпустили OpenSilver - бесплатную  Читать полностью »

Почему uBlock Origin лучше работает в Firefox - 1

Автор uBlock Origin и uMatrix Реймонд Хилл обновил памятку, почему расширение uBlock Origin наиболее эффективно работает в браузере Firefox. Некоторые технические детали относятся не только к uBO, но и к другим блокировщикам рекламы.

Реймонд Хилл называет несколько основных факторов: более эффективное вскрытие маскировки CNAME, HTML-фильтрация, поддержка WebAssembly, более корректная процедура запуска браузера, сжатие LZ4 и надёжно отключённый префетчинг ресурсов. Всё это есть в Firefox, но отсутствует или глючит в браузерах на основе Chromium.
Читать полностью »

Современные браузеры могут намного больше, чем рендеринг веб-страниц. Это стало одной из причин появления WebAssembly. Эта технология создана в попытке вывести скорость решения сложных задач на новый уровень, построить мост между JavaScript и машинным кодом.

WebAssembly, в теории, может позволить кому угодно писать низкоуровневый код, выполняющийся в браузере, в безопасном виртуальном окружении. И, что ещё интереснее, технология WASM (сокращение от WebAssembly) была спроектирована как цель компиляции для других языков, позволяя коду, который обычно выполняют в серверной среде (например — коду, написанному на C или на C++), компилироваться в соответствующий формат и выполняться в браузере.

Что не так с WebAssembly? - 1

У WASM был огромный потенциал и невероятные перспективы. Что же пошло не так? Почему WASM, через 3 года после релиза, ещё не используется в каждом веб-проекте? Есть ли у WASM будущее в веб-разработке? Поищем ответы на эти вопросы.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js