TGViewer
Технологический Болт Генона Технологический Болт Генона @tech_b0lt_genona · 9.78K subscribers
Post #7036 1.67K

Forwarded from commit -m "better"

Вы думали я забыл про #shell?

Да, от #shell у меня плавно отпочковался терминал для него #shitty, но #shitty готов, и теперь можно вернуться к родительскому проекту!

У проекта теперь новый дом, и новое название - #impulse!

https://github.com/impulse-desktop/shell - собственно шелл
https://github.com/impulse-desktop/suite - набор пользовательский программ, типа просмотрщика изображений и прочего, все поверх #imgui.

Собственно, про просмотрщик изображений далее и пойдет речь.

Год назад я бы взял image magick, тем самым, поддержал бы все форматы, и был бы доволен, как слон после трехведерной клизмы.

Но:

* У IM плохая карма история CVE, а просматривать изображения приходится из совершенно разных источников

* #LLM позволяют славно заебаться, на пустом месте

Поэтому я сделал #изящно - собрал IM в #WebAssembly, и запускаю декодер изображений в песочнице.

В целом, это похоже на то, что делает firefox, со своим https://rlbox.dev/, но, как обычно, есть нюанс - мне удалось собрать такой IM, который не зависит от host системы, ни через emscripten API, ни через #WASI. То есть, в вашу FS этот артефакт не попадет ни при каких обстоятельствах!

Ровно одна экспортируемая функция - decode(ptr, len) -> ptr, чистый WebAssembly! AFAIK так еще никто не делал, и это было не супер просто, несмотря на то, что мой #ix умеет в кросс в WebAssembly.

Что?! Как?! А вот так!

Мне показалось, что этот артефакт может быть полезен широкому кругу людей, особенно тем, кто занимается обработкой изображений в облаках, поэтому я из этого сделал отдельный проект, со своим CI, и со своим релизным циклом - https://github.com/pg83/decode

Все просто - качаете оттуда decode.wasm, и встраиваете куда хотите, в любой #wasm runtime, так как, повторю, у артефакта 0 зависимостей от host системы.

На КДПВ - #perf конструкции, если встраивать через wasm2c.

В целом, замедление небольшое, учитывая bounds check на каждый memory access, не так уж и плохо. Ну и нет нужды в переписывании всего и вся на almost blazingly fast, probably memory safe.
  • 🤡 14
  • 👍 7
  • 😁 4
  • 🔥 3
  • ❤ 1
More from @tech_b0lt_genona
  1. Oct 2, 2026Объявляем 2027 годом скама и пробива? Мы уже это проходили с кредитами от "салонов сотовой…
  2. Oct 1, 2026Четверг, а значит время проектов от подписчиков! 🌝 Тем, кто пропустил, что такое четверго…
  3. Oct 1, 2026Открылись северный вестибюль и платформа международного сообщения Москва-Минск на 🚄 моско…
  4. Oct 1, 2026Сегодня день вахтера? Сбер такой Сбер...
  5. Oct 1, 2026https://t.me/AlexCarrier/16988 Ор выше гор 10000 подписчиков Это точно поможет продвижению…
  6. Oct 1, 2026Как утекают AWS-ключи на GitHub Независимое исследование AR4CHN05: систематический анализ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →