TGViewer
commit -m "better" commit -m "better" @itpgchannel · 3.79K subscribers
Post #4495 4.24K
Вы думали я забыл про #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.
  • ❤‍🔥 18
  • 👍 15
  • 👀 6
  • ❤ 4
  • 🤡 4
  • 🔥 3
  • 😁 2
  • 🆒 1
More from @itpgchannel
  1. Oct 3, 2026История одной #perf оптимизации Для #impulse мне нужен видеоплеер, с gui на #imgui. Нужен…
  2. Oct 3, 2026photo post
  3. Oct 2, 2026Кстати, opus 5.5 теперь моя рабочая лошадка, заменил sol 5.6. Подписка на codex кажется вс…
  4. Oct 1, 2026Я не пользуюсь ИИ, я пользуюсь своей администрацией — Путин Президент также добавил, что м…
  5. Sep 29, 2026Пока рассказывают про Grok Bot и Muse— в документации уже указано, что: 1) да, будет тир з…
  6. Sep 29, 2026Красота какая! Оказывается, от AI не только тупеют, но еще и умнеют!
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 →