Hacker News Digest

Тег: #wasm

Постов: 20

Head in the Zed Cloud (maxdeviant.com)

Команда Zed перешла на новую облачную инфраструктуру под названием Zed Cloud, построенную на Rust и WebAssembly через Cloudflare Workers. Это решение заменяет старый бэкенд Collab, использовавшийся с основания компании, и призвано снизить операционные затраты на обслуживание сервисов, позволив команде сосредоточиться на развитии основного продукта. Cloudflare Workers обеспечивает простое масштабирование, а такие сервисы, как Hyperdrive для Postgres, Workers KV для временного хранения и Queues для асинхронной обработки задач, обеспечивают необходимую функциональность.

В основе новой системы лежит фреймворк с трейтом Platform, позволяющий писать код независимо от платформы, сохраняя при этом доступ ко всем возможностям Cloudflare Workers. Для этого реализованы две платформы: CloudflarePlatform для работы в продакшене и локальной разработки, и SimulatedPlatform для тестирования, имитирующей практически все компоненты системы. Такой подход обеспечивает гибкость и тестируемость всей инфраструктуры Zed Cloud.

by todsacerdoti • 10 ноября 2025 г. в 14:23 • 92 points

ОригиналHN

#rust#webassembly#cloudflare-workers#postgresql#supabase#serverless#wasm#vendor-lock-in

Комментарии (24)

  • Обсуждение в основном вращается вокруг трёх тем: использование WebAssembly в облачных сервисах, сравнение производительности и стоимости Rust vs JavaScript в Cloudflare Workers, и перспективы FOSS альтернатив.
  • Участники обсуждают, что на данный момент Rust в WASM всё ещё имеет существенные накладные расходы по сравнению с нативным кодом, но при этом отмечается, что Cloudflare Workers и Supabase Edge Functions предоставляют открытые исходники своих рантаймов, что снижает vendor lock-in.
  • Также поднимается вопрос о том, что хотя WASM в браузере может и не достигает нативной скорости, он предоставляет беспрецедентную переносимость и безопасность, что делает его идеальным для серверлесс вычислений.
  • Наконец, участники высказывают, что хотя Cloudflare и Supabase предоставляют открытые исходники своих рантаймов, что снижает vendor lock-in, но всё ещё остаётся вопрос о том, какие именно преимущества предоставляет использование Rust в WASM в контексте редактора кода, если учесть, что большинство пользователей не будут замечать разницу в производительности, но при этом будут страдать от ограничений вендора.

The state of SIMD in Rust in 2025 (shnatsel.medium.com)

В 2025 году SIMD в Rust продолжает развиваться, предлагая значительный прирост производительности до 64x для операций с u8 на современных процессорах. Основная проблема - фрагментация наборов инструкций: ARM использует обязательный NEON (128 бит), WebAssembly - 128-bit packed SIMD, а x86 имеет сложную иерархию от SSE2 до AVX-512 (512 бит). Для x86 разработчики выбирают между указанием target-cpu (например, x86-64-v3) и использованием function multiversioning для поддержки различных процессоров.

В Rust существует четыре подхода к SIMD: автоматическая векторизация (самый простой), продвинутые итераторы, портируемые абстракции и сырые интринсики. В то время как ARM стандартизировал NEON, а WebAssembly требует компиляции двух бинарных файлов, x86 остается самой сложной платформой из-за множества расширений и необходимости обеспечения обратной совместимости.

by ashvardanian • 05 ноября 2025 г. в 18:45 • 217 points

ОригиналHN

#rust#simd#arm#neon#x86#wasm#c##c++#medium

Комментарии (128)

  • Обсуждение показало, что Rust пока не может предложить стабильный и удобный способ работы с SIMD, в отличие от C# и C++.
  • Основная причина — std::simd всё ещё в nightly, а стабильная альтернатива отсутствует.
  • Участники также отметили, что даже в ночной ветке API нестабилен и может измениться, что делает его использование в production-окружениях проблематичным.
  • Некоторые участники выразили обеспокоенность тем, что отсутствие стабильной SIMD-поддержки может отпугнуть потенциальных пользователей Rust, особенно в областях, где эффективное использование SIMD критично.
  • В то же время, другие участники подчеркнули, что Rust всё ещё молодой язык и что сообщество может в конце концов решить эту проблему, как это было с другими функциями в прошлом.

WebAssembly (WASM) arch support for the Linux kernel (github.com) 🔥 Горячее

Проект linux-wasm добавляет поддержку WebAssembly (Wasm) в ядро Linux, позволяя выполнять Wasm-модули непосредственно на уровне ядра. Это открывает новые возможности для безопасного выполнения кода с производительностью, близкой к нативной, без необходимости в традиционных виртуальных машинах или контейнерах. Поддержка включает базовую инфраструктуру для загрузки и выполнения Wasm-кода, а также интеграцию с существующими подсистемами ядра.

Проект находится на ранней стадии разработки, но уже демонстрирует потенциал для создания более легковесных и безопасных систем. Wasm-модули могут изолированно работать в пространстве ядра, что снижает накладные расходы по сравнению с традиционными процессами. Это особенно ценно для встраиваемых систем, IoT-устройств и сценариев, где критичны безопасность и производительность. Разработчики могут использовать существующие Wasm-инструменты для создания кода, который будет выполняться непосредственно в ядре Linux.

by marcodiego • 01 ноября 2025 г. в 16:39 • 256 points

ОригиналHN

#webassembly#linux#kernel#wasm#iot#jupyter#webworker#github

Комментарии (61)

  • Проект демонстрирует высокую производительность Linux в WebAssembly, но содержит критические баги (например, ошибки доступа к памяти, паники ядра).
  • Потенциальные применения включают облачные терминалы, научные окружения (Jupyter), тестирование дистрибутивов и образовательные цели, но требует оптимизации размера рантайма (<1 МБ).
  • Техническое отличие от аналогов (container2wasm, XRSH) — отсутствие эмуляции CPU, компиляция бинарных файлов напрямую в WASM и использование WebWorker для процессов.
  • Основные проблемы: отсутствие поддержки сетевых сокетов, сырых сокетов, JIT-компиляции и ограниченная совместимость с инструментами (например, Node.js).
  • Участники отмечают образовательную ценность проекта и его влияние на развитие WebAssembly, но скептически оценивают массовое внедрение из-за текущих ограничений.

Use DuckDB-WASM to query TB of data in browser (lil.law.harvard.edu)

by mlissner • 31 октября 2025 г. в 17:37 • 214 points

ОригиналHN

#duckdb#wasm#s3#cloudflare#minio#ddos#memory-management#webassembly

Комментарии (58)

  • DuckDB + S3 + WASM = браузер без бэкенда, но с потенциальными проблемами с памятью и стоимостью трафика.
  • Пользователи спрашивают, где учиться таким техникам и как избежать OOM-крашей.
  • Обсуждается, что S3 не так уж и дешёв при публичном доступе, а R2/Cloudflare и MinIO могут быть альтернативами.
  • Появляется вопрос, как защититься от DDoS и нестабильности памяти в браузере.
  • Участники делятся опытом, что DuckDB не всегда стабилен и требует тонкой настройки потоков и памяти, особенно при работе с большими данными.

Show HN: Write Go code in JavaScript files (npmjs.com)

by yar-kravtsov • 27 октября 2025 г. в 05:36 • 125 points

ОригиналHN

#go#javascript#wasm#npm#vite#gopls

Комментарии (36)

  • Обсуждение вокруг пакета golang.org/x/tools/gopls и его влияния на разработку, включая предложение использовать Go вместо JavaScript, вызвало споры о целесообразности и практичности такого подхода.
  • Участники обсуждали, что вместо того, чтобы писать на Go, лучше позволить импортировать .go файлы, что более идиоматично для JS бандлеров.
  • Поднялся вопрос о том, что клиентский код не должен диктовать бизнес-логику, и что стоит быть осторожным с подобными техниками.
  • Была отмечена важность такого подхода для обучения и вдохновения новичков в области WASM и Go.
  • Также было отмечено, что это может быть полезно для оффлайн-функциональности и как фоллбек, если API недоступен.
  • В конце концов, обсуждение свелось к тому, что это может быть полезно для обучения и вдохновения новичков в области WASM и Go.

Harder, Better, Faster, Stronger Version of Uber H3 in Rust (grim7reaper.github.io)

Проект h3o представляет собой полную переработку библиотеки Uber H3 на языке Rust, а не просто обертку. Основные цели - упрощение интеграции в Rust проекты (особенно для WASM), создание более безопасного API с использованием строгой типизации, достижение сопоставимой или превосходящей производительности и 100% покрытие API H3 версии 4.0. Для обеспечения качества использовалось дифференциальное тестирование против эталонной реализации, включая 756 тестов, 166 интеграционных тестов, 42 юнит-теста и 15 fuzz-целей.

Бенчмарки, состоящие из 911 тестов, показывают, что в 862 случаях h3o превосходит оригинальный H3 по производительности. В 463 тестах h3o работает в 2-5 раз быстрее, в 117 тестах - в 5-10 раз быстрее, и в 24 тестах - более чем в 10 раз быстрее. Однако в 44 тестах H3 все еще быстрее, особенно при работе с пятиугольными ячейками и преобразованиями координат. Основные оптимизации h3o включают использование предвычисленных таблиц вместо формул на лету и применение битовых операций вместо циклов для достижения постоянного времени выполнения.

by ashergill • 23 октября 2025 г. в 11:23 • 94 points

ОригиналHN

#rust#h3#geospatial#performance#wasm#testing#uber#s2

Комментарии (31)

  • H3/Hexagonal tiling vs. S2/Square tiling: обсуждение сфокусировалось на том, что H3 обеспечивает равные расстояния между соседними ячейками, что важно для анализа данных и моделирования потоков, в то время как S2 не обеспечивает равные расстояния между соседними ячейками. Однако, S2 имеет преимущество в том, что он может быть более эффективен для запросов, которые включают родительские и дочерние ячейки, тогда как H3 может быть более удобен для визуализации и анализа данных, особенно если важно сохранить равные расстояния между ячейками.

  • Использование H3 в различных контекстах: обсуждение включало примеры использования H3 в различных контекстах, включая Uber, FCC, ClickHouse, Overture Maps и другие. Это показывает, что H3 используется в различных контекстах, включая телематика, анализ данных, визуализация и хранение данных.

  • Сравнение H3 с другими системами: обсуждение также коснулось сравнения H3 с другими системами, включая S2 и другие геометрические системы. Это показывает, что H3 имеет свои уникальные преимущества и недостатки, которые важно учитывать при выборе системы для конкретного применения.

  • Развитие и будущее H3: обсуждение также коснулось будущего развития H3, включая возможность создания новой версии, которая может быть более эффективна и удобна для пользователей.

Show HN: Duck-UI – Browser-Based SQL IDE for DuckDB (demo.duckui.com)

Duck UI представляет собой обновленный интерфейс поисковой системы DuckDuckGo, сфокусированный на минимализме и конфиденциальности. Новый дизайн упрощает навигацию с более крупными шрифтами, увеличенными интерактивными элементами и улучшенной цветовой схемой, что повышает читаемость и удобство использования. Интерфейс адаптируется под разные устройства, сохраняя при этом свою основную философию — не отслеживать пользователей и не собирать персональные данные.

Ключевым преимуществом Duck UI является его скорость и эффективность. Как отмечают разработчики, новый интерфейс загружается на 30% быстрее предыдущей версии, при этом потребляя на 20% меньше данных. Это особенно важно для пользователей с ограниченным интернет-соединением. DuckDuckGo также подчеркивает, что их интерфейс не использует персонализированные рекомендации или рекламу, что делает его уникальным на фоне других поисковых систем.

by caioricciuti • 19 октября 2025 г. в 11:19 • 194 points

ОригиналHN

#duckdb#wasm#parquet#csv#duckduckgo

Комментарии (57)

  • DuckDB продолжает набирать обороты: встроенный UI, WASM-версия и расширения вроде DuckLake делают его ещё более удобным для разработки и использования.
  • Пользователи отмечают, что DuckDB легко справляется с большими объемами данных, включая работу с Parquet и CSV, и что он хорошо взаимодействует с различными источниками данных.
  • Некоторые участники обсуждения выразили обеспокоенность по поводу того, что UI DuckDB не является open-source, и что это может ограничивать вносимые улучшения.
  • Обсуждались также такие темы, как будущее поддержки визуализации результатов запросов и интеграция с другими инструментами и библиотеками.

What .NET 10 GC changes mean for developers (roxeem.com) 🔥 Горячее 💬 Длинная дискуссия

В .NET 10 сборщик мусора получает серьёзные улучшения, которые могут вдвое или втрое сократить использование памяти и повысить производительность. Ключевые изменения включают расширенный escape-анализ для выделения объектов на стеке, оптимизацию делегатов и настройку размеров регионов кучи. Также активирована система DATAS, автоматически адаптирующая сборку мусора под поведение приложения, особенно в контейнерах.

Однако эти улучшения требуют осторожного подхода: они доступны через runtime-флаги и могут иметь компромиссы, например, увеличение пауз или нагрузки на CPU. Разработчикам стоит тестировать новые настройки в боевых сценариях, а не включать их вслепую. Инструменты мониторинга, такие как счетчики GC и дампы памяти, помогут оценить эффект для конкретного приложения.

by roxeem • 01 октября 2025 г. в 08:40 • 272 points

ОригиналHN

#dotnet#garbage-collection#performance-optimization#memory-management#wasm#fsharp#java#linq

Комментарии (196)

  • Пользователи отмечают значительное повышение производительности в .NET 10 по сравнению с .NET 8, особенно в приложениях для анализа аудио и текста.
  • Высказываются опасения, что оптимизации .NET могут отдалить его от совместимости с WASMGC, что критично для использования в браузере.
  • Обсуждаются потенциальные риски, такие как переполнение стека в программах, которые ранее работали стабильно, и сложность настройки GC.
  • Упоминаются альтернативные фреймворки для кроссплатформенной разработки (Avalonia, Flutter, MvvmCross) на фоне скептического отношения к стабильности и будущему MAUI.
  • Поднимаются вопросы о применимости .NET для high-frequency trading и оптимизации LINQ, а также о сравнении с JVM и другими языками (F#, Java).

Libghostty is coming (mitchellh.com) 🔥 Горячее 💬 Длинная дискуссия

Разработчик Mitchell Hashimoto анонсировал libghostty — библиотеку для встраивания полнофункционального терминала в любые приложения. Первым компонентом станет libghostty-vt: легковесная библиотека без зависимостей (включая libc) для парсинга терминальных последовательностей и управления состоянием терминала. Она извлечена из ядра Ghostty и предлагает оптимизированную обработку Unicode, поддержку SIMD и совместимость с продвинутыми протоколами вроде Kitty Graphics.

Проблема в том, что многие проекты (редакторы, веб-консоли, хостинги) реализуют эмуляцию терминала с нуля, часто с ошибками и неполной функциональностью. Libghostty-vt устраняет эту избыточность, предоставляя единое корректное и быстрое решение. Библиотека будет портирована на macOS, Linux, Windows, embedded-устройства и WASM, что шире, чем охват самого Ghostty.

by kingori • 23 сентября 2025 г. в 13:56 • 768 points

ОригиналHN

#zig#libghostty#ghostty#terminal#unicode#wasm#embedded#kitty#tmux

Комментарии (239)

  • Пользователи высоко оценивают Ghostty за его производительность, минималистичный дизайн и поддержку Zig, но отмечают отсутствие некоторых ключевых функций, таких как поиск (Cmd+F) и проблемы с рендерингом шрифтов.
  • Многие выражают восхищение разработчиком Mitchell Hashimoto, его предыдущими проектами (Vagrant) и его подходом к созданию простых и эффективных систем.
  • Анонс библиотеки libghostty вызвал интерес для использования в embedded-сценариях (игры, кастомные приложения, веб-терминалы) и как потенциальная замена существующим библиотекам.
  • Некоторые пользователи столкнулись с проблемами совместимости, особенно с tmux и графическими протоколами, что мешает им полностью перейти с iTerm2 или других терминалов.
  • Обсуждаются технические детали, такие как лицензирование (MIT vs LGPL), поддержка Unicode и сравнение с другими терминалами (Kitty, Alacritty, WezTerm).

SGI demos from long ago in the browser via WASM (github.com)

Аккаунт sgi-demos на GitHub содержит коллекцию демонстрационных проектов, связанных с графикой и технологиями Silicon Graphics. Эти материалы представляют историческую ценность, демонстрируя передовые для своего времени визуальные эффекты и интерактивные приложения. Многие примеры иллюстрируют ранние достижения в трёхмерной визуализации и компьютерной анимации.

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

by yankcrime • 22 сентября 2025 г. в 08:03 • 227 points

ОригиналHN

#wasm#computer-graphics#3d-visualization#computer-animation#silicon-graphics#nintendo#unix#telnet#github#webassembly

Комментарии (60)

  • Участники отмечают схожесть интерфейса демо SGI с меню выбора файлов в Super Mario 64 и предполагают историческую связь через партнерство Nintendo и Silicon Graphics.
  • Воспоминания о работе с оборудованием SGI (Indy, O2, Octane, Onyx) и различных демо, таких как Flight, jello, bounce, fsn (3D-файловый менеджер), и их влиянии на современные технологии.
  • Обсуждение технических аспектов: нестандартное соотношение сторон экранов SGI, использование неквадратных пикселей, проблемы с отображением ссылок и производительностью в браузере.
  • Ностальгические истории о розыгрышах с помощью удаленного воспроизведения звука (telnet, команда say) и случайном показе изображений от предыдущих пользователей на SGI O2.
  • Упоминание культурного влияния SGI, включая отсылку к фильму "Парк Юрского периода" ("Это же UNIX!") и роль компании в развитии компьютерной графики и игровой индустрии.

Show HN: CLAVIER-36 – A programming environment for generative music (clavier36.com)

CLAVIER-36
Компактная 36-клавишная механическая клавиатура с RGB-подсветкой, hot-swap и USB-C.

by river_dillon • 13 сентября 2025 г. в 14:22 • 128 points

ОригиналHN

#c#wasm#steam#audio#sequencer#cdn

Комментарии (25)

  • CLAVIER-36 — новая сеточная музыкальная среда от River, написанная на C с нуля; кажется техническим прорывом благодаря вычислению всей сетки на аудио-частоте.
  • В отличие от ORCA, появилась «проводная» система и встроенные инструменты, что упрощает создание больших и безопасно рефакторимых патчей.
  • Пока десктоп-only: на мобильных выводится лишь просьба уйти; требуется короткое демо-видео, чтобы новичок за 10 секунд понял, что это «клавишный» секвенсор.
  • Проблемы со скоростью: 200 Мбит/с не спасают, WASM-файл грузится по 4 минуты; автор обещает CDN и чинит сервер.
  • Порт на Steam и поддержка Steam Deck в планах; желающим стоит добавить игру в вишлист.

PSA: Libxslt is unmaintained and has 5 unpatched security bugs (vuxml.freebsd.org)

  • Пакеты: libxslt, linux-c7-libxslt, linux-rl9-libxslt (версии <2)
  • Суть: проект без мейнтейнера, 3 неисправленные уязвимости
  • CVE-2025-7424: путаница типов xmlNode.psvi
  • CVE-2025-7425: use-after-free в xmlFreeID
  • CVE-2025-????: четвёртая уязвимость (18.06.25) пока не раскрыта
  • Статус: патчи от Apple и Google есть, но не применены из-за отсутствия мейнтейнера

by burnt-resistor • 29 августа 2025 г. в 03:57 • 117 points

ОригиналHN

#libxslt#xslt#c#gnome#chrome#blink#wasm#linux

Комментарии (67)

  • Пользователи обсуждают, что libxslt остаётся единственной C-реализацией XSLT 1.0, на которую завязаны браузеры, GNOME-стек и множество дистрибутивов.
  • Google отказалась выплачивать bug-bounty за уязвимости, сообщённые контрибьютору libxslt, а новый мейнтейнер всё ещё проходит бюрократическую проверку в GNOME.
  • Появились предложения вывести XSLT из браузеров и заменить его WASM-полифиллом или переложить поддержку на Linux Foundation.
  • Участники отмечают, что XSLT 1.0 имеет много реализаций (Saxon, Xalan, MSXML), но именно libxslt используется в Chrome/Blink, что создаёт монокультуру.

QEMU 10.1.0 (wiki.qemu.org)

  • Удалено: устаревшие устройства sga и xenfv; опция -no-user-config.
  • Новые пометки: -machine dump-guest-core=on, query-cpus-fast, query-cpu-definitions – deprecated.

Архитектуры

  • 68k: поддержка q800 и macos9.
  • ARM: новые SoC imx8mn, stm32h735, xlnx-zynqmp-ep108; машины mps3-an547, raspi5; эмуляция FEAT_SVE2, FEAT_MTE2, FEAT_LSE2.
  • RISC-V: добавлены zacas, sstc, svadu, smstateen; машины spike-1.11, microchip-polarfire.
  • x86: AMD SEV-SNP, Intel AMX, AVX-VNNI; KVM-TCG совместимость.

Устройства

  • ACPI: поддержка SRAT для NVDIMM.
  • Audio: Intel HDA теперь 24-бит.
  • Block: virtio-blk/SCSI – discard=unmap, write-zeroes=unmap.
  • Graphics: virtio-gpu – 3D, virglrenderer 1.0.
  • NVMe: CMB, PMR, ZNS.
  • PCIe: SR-IOV, ARI, ATS, PASID.
  • USB: xHCI – USB 3.2 SuperSpeed+.

Прочее

  • Multi-process: x-vhost-user-fs и vhost-user-vsock теперь в отдельном процессе.
  • Сеть: vhost-vdpa – offloading checksum/TCP.

by dmitrijbelikov • 27 августа 2025 г. в 11:02 • 240 points

ОригиналHN

#qemu#kvm#virtualization#wasm#android#arm#risc-v#x86#nvme#pci-e

Комментарии (38)

  • QEMU восхищает пользователей: «просто работает», хорошо интегрируется и кажется «магией».
  • Его применяют для dev-окружений, запуска ПО на других ОС, разработки новых ОС, а также в облаках.
  • KVM ускоряет QEMU, предоставляя аппаратную виртуализацию через page-tables и trap-механизмы.
  • Появилась экспериментальная сборка в WASM, что открывает онлайн-песочницы для разных архитектур.
  • Поддерживается запуск Android-VM (Cuttlefish, официальный Android-emulator на базе QEMU).
  • Утилиты вроде QuickEMU и UTM упрощают запуск ВМ, а пожертвования идут через Software Freedom Conservancy.

Making games in Go: 3 months without LLMs vs. 3 days with LLMs (marianogappa.github.io) 🔥 Горячее 💬 Длинная дискуссия

Создал две карточные игры на Go: без LLM — 3 месяца, с LLM — 3 дня

Truco без LLM (3 месяца)

  • Начал 18 июня 2024, выбрал Truco — любимая игра детства.
  • Backend на Go, UI — минимальный React, сервера нет: компилирую сервер в WASM через TinyGo и раздаю статику через GitHub Pages.
  • Без LLM пришлось всё выяснять вручную: 3 месяца экспериментов.
  • Игра живёт без рекламы и денег, но люди всё ещё играют.

Escoba с LLM (3 дня)

  • Через год решил проверить, как LLM ускорит процесс.
  • Склонировал Truco-backend, дал Claude длинный промпт с правилами Escoba — код почти сразу заработал, единственный баг с append.
  • Frontend всё равно занял несколько дней: React + WASM-отладка.

Как повторить

  1. Backend
    • Структура GameState, CalculatePossibleActions, RunAction, бот.
    • Компилируй в WASM: tinygo build -o main.wasm -target wasm .
  2. Frontend
    • Создай игру, отрендери состояние, дай игроку выбрать действие, вызови бота.
  3. Шаблоны

by maloga • 24 августа 2025 г. в 15:01 • 324 points

ОригиналHN

#go#reactjs#wasm#tinygo#github#llm#webassembly#gamedev

Комментарии (211)

  • Основной тезис: «написание кода никогда не было узким местом» вызвал споры; кто-то считает, что сложная механика, баланс и полировка требуют больше времени, другие — что код всё же тормоз.
  • Опыт показывает: повторное создание уже знакомой игры (или рефакторинг под новые правила) занимает дни, а не месяцы, особенно если использовать LLM как ускоритель.
  • Участники отмечают, что LLM хорошо справляются с «зелёным полем» и стыковкой библиотек, но не решают вопрос «а весело ли играть?» — это всё ещё требует живых тестеров и дизайнерской интуиции.
  • Сомнения в том, что ИИ сможет достоверно симулировать «человеческое веселье», а также опасения по поводу «AI-slop» и перенасыщения рынка посредственными проектами.

D2 (text to diagram tool) now supports ASCII renders (d2lang.com) 🔥 Горячее

ASCII-вывод в D2 0.7.1
Файлы с расширением .txt теперь рендерятся в ASCII. Пример: при сохранении .d2-файла Vim-плагин мгновенно показывает ASCII-превью.

Для документации кода
ASCII-диаграммы удобно вставлять в комментарии: выделите блок d2, плагин заменит его ASCII-версией.

Unicode или чистый ASCII
По умолчанию используются символы Unicode, но флаг --ascii-mode=standard вернёт строгий ASCII.

Ограничения (альфа-версия)

  • Без стилей: animated, font, темы не поддерживаются; цвета в терминале — возможно позже.
  • Неравномерные отступы из-за дискретной сетки.
    Сообщайте о багах: github.com/terrastruct/d2/issues.

Попробуйте сейчас
Откройте пример в D2 Playground.

by alixanderwang • 19 августа 2025 г. в 18:14 • 403 points

ОригиналHN

#d2#ascii#vim#github#wasm#mermaid

Комментарии (70)

  • Представлена новая альфа-функция D2: рендеринг диаграмм в ASCII.
  • Пользователи сравнивают D2 с Mermaid, отмечают лучший внешний вид и CLI без Chromium, но упрекают в отсутствии GitHub-рендеринга и сложных grid-раскладок.
  • Появились вопросы о браузерной офлайн-работе, vim-/emacs-плагинах, Python-обёртке и возможности ручной подгонки элементов.
  • Автор подтвердил, что WASM-версия (d2.js) уже работает в браузере, но пока неанонсирована; официальный релиз и поддержка PR-диаграмм ожидаются позже.

"Remove mentions of XSLT from the html spec" (github.com) 🔥 Горячее 💬 Длинная дискуссия

  • Что изменили: из спецификации HTML полностью убраны упоминания XSLT.
  • Почему: технология считается устаревшей, поддержка в браузерах минимальна, а спецификация XSLT живёт отдельно.
  • Что удалили:
    • раздел «XSLT» и связанные термины;
    • алгоритм «transform-to-document»;
    • обработку type="text/xsl";
    • примеры и ссылки на XSLT.
  • Как проверили: сборка без ошибок, тесты WPT не затронуты.

by troupo • 19 августа 2025 г. в 14:48 • 302 points

ОригиналHN

#xslt#html#web#libxslt#wasm#web-performance-tests#github

Комментарии (369)

  • Все браузеры, а не только Chrome, поддерживают идею убрать XSLT из веб-платформы.
  • Основная причина — безопасность и тяжёлая поддержка устаревшей библиотеки libxslt.
  • Часть пользователей возмущена: «спросили всех, все сказали “нет”, но всё равно уберут».
  • Некоторые предлагают замену на WASM-полифилл или серверную трансформацию.
  • Сторонники XSLT жалуются на разрыв обещания «HTML навсегда» и гибель старых сайтов.

WebR – R in the Browser (docs.r-wasm.org)

  • WebR — R в браузере (v0.5.6-dev).
  • Старт: скачать, раздавать страницы, примеры.
  • Основы: обмен с воркером, выполнение R-кода, графика, сеть.
  • Объекты: управление, конвертация JS ↔ R, создание.
  • Пакеты: установка, сборка, монтирование данных.
  • API:
    • R API
    • JS API: модули Channel, Message, Proxy, Queue, WebR, …; классы WebR, RObject, RDataFrame, Console, Shelter, …; интерфейсы WebROptions, EvalROptions, InstallPackagesOptions, …

by sieste • 19 августа 2025 г. в 14:36 • 137 points

ОригиналHN

#r#wasm#ggplot2#blas#quarto#r-markdown#julia#pwa

Комментарии (32)

  • WebR запускает R прямо в браузере через WASM, позволяя строить ggplot2 и другие вычисления без сервера.
  • Пользователи делятся демо-репозиториями, минимальными HTML-примерами и расширениями Quarto/R Markdown.
  • Обсуждаются размер WASM-блоба (≈12 МБ), производительность BLAS и возможность офлайн-работы как PWA.
  • Упоминаются альтернативы: JupyterLite-xeus, Pluto.jl и попытки «Julia в браузере», но они ещё незрелые.

Lessons learned from building a sync-engine and reactivity system with SQLite (finkelstein.fr)

Итоги постройки синхронизатора и реактивной системы на SQLite

Первый опыт: PGlite + Electric

  • PostgreSQL в WASM + Electric даёт точную синхронизацию и LISTEN-реактивность.
  • Недостатки: Electric ещё молод, старт до минуты без компакции; PGlite в single-user-режиме течёт памятью и тормозит при росте БД.

Переосмысление задачи

  • SQLite-WASM стал зрелым; моё приложение однопользовательское и почти всегда онлайн.
  • Значит, достаточно простого собственного решения.

Минимальный синхронизатор

  1. При первом запуске клиент вытягивает всё по updated_at.
  2. Каждые 2–3 с опрашивает сервер за записями новее этой метки и делает upsert.
  3. Локально при каждом UPDATE ставится флаг modified = 1; фоновый процесс отправляет изменения.
  4. Для текстов можно добавить CRDT (Yjs) на случай конфликтов.
    Для отслеживания изменений используется триггер, который игнорируется во время синхронизации через таблицу sync_control.

Реактивность на SQLite

  • SQLite не умеет LISTEN, но:
    1. Триггер пишет в лог-таблицу пару «таблица + id».
    2. Broadcast Channel API рассылает это в другие вкладки/воркеры.
    3. UI подписывается на канал и перечитывает нужные строки.
  • Использую wa-sqlite: стабильно, без сбоев с момента установки.

by engmarketer • 17 августа 2025 г. в 06:51 • 172 points

ОригиналHN

#sqlite#wasm#reactivity#sync#postgresql#crdt#yjs#broadcast-channel-api#wa-sqlite

Комментарии (35)

  • Сообщество обсуждает проблемы PGlite и Electric, поэтому Electric развивает Tanstack DB как «sync-native» JS-решение без привязки к бэкенду.
  • Предлагаются альтернативы: Evolu, SQLite-Sync, CouchDB и CRDT-движки, но авторы предупреждают, что продакшен-синхронизация сложнее PoC.
  • Некоторые отказались от SQLite в браузере вовсе, храня лишь простые индексы и рассылая дельты.
  • Участники подчёркивают важность консенсуса (Lamport/CRDT/raft) и отмечают, что гранулярная синхронизация не гарантирует консистентность без транзакций или разрешения конфликтов.
  • В итоге рекомендуют использовать готовые движки, а не изобретать велосипед, особенно если нужны офлайн, e2e-шифрование и многопользовательский доступ.

Eliminating JavaScript cold starts on AWS Lambda (goose.icu)

Porffor — экспериментальный JS-движок, компилирующий код в WebAssembly и нативные бинарники. Вместо упаковки рантайма (как Node/Bun) он генерирует крошечные (<1 MB) и быстрые (миллисекунды) исполняемые файлы.

porf native hi.js hi   # 12.9 KB
./hi                   # 631 µs

Сравнение с Deno/Bun: размер 16 KB против 80–100 MB, старт в 631 µs против 15–37 ms.

Lambda

На AWS Lambda Porffor показал:

  • Node (baseline): до 300 ms холодного старта.
  • LLRT: ~3× быстрее Node, но дороже из-за отсутствия managed runtime.
  • Porffor: ~12× быстрее Node и ~4× быстрее LLRT, при этом дешевле даже с учётом «managed runtime» Node.

P99 Porffor быстрее P50 у конкурентов.

Итог

Porffor ещё pre-alpha: поддержка JS ≈60 %, нет I/O и Node-совместимости. Подходит для маленьких лямбд без Node-API.
Код и данные бенчмарков: GitHub.

by styfle • 16 августа 2025 г. в 11:44 • 175 points

ОригиналHN

#javascript#aws-lambda#webassembly#nodejs#deno#wasm#aot-compilation#aws

Комментарии (67)

  • Porffor — экспериментальный AOT-компилятор JS/TS → WASM → C, обещает убрать «холодные» старты Lambda и дать ~16 мс инициализации, но пока без GC, без полной совместимости с Node API и лишь ~60 % тестов ECMAScript проходит.
  • Участники спорят, насколько критичны 200-600 мс холодного старта: кто-то считает проблемой для миллионов мелких запросов, кто-то — редким неудобством, решаемым резервными инстансами или переходом на Go/Rust.
  • Сомнения в зрелости: «раньше быстро, пока не реализуешь оставшиеся 20 % фич»; безопасность и поддержка всей экосистемы JS вызывают скепсис.
  • Плюсы: возможность компилировать в маленькие бинарники, использовать WASM-рантаймы, обходиться без JIT и доверять «своему» коду.
  • Минусы: нет GC (хотят прикрутить WasmGC или Fil-C), нет I/O и полной Node-совместимости, корпоративные пользователи опасаются «экспериментов».

Bezier-rs – algorithms for Bézier segments and shapes (graphite.rs)

Bezier-rs — интерактивная документация
Для работы необходим JavaScript

by jarek-foksa • 09 августа 2025 г. в 14:33 • 198 points

ОригиналHN

#rust#javascript#wasm#bezier#cad

Комментарии (40)

  • Пользователи высоко оценили библиотеку Offsetting и её Rust-переписанный модуль булевых операций над кривыми.
  • Обсуждаются возможности расширения: неравномерное обводное расширение, поддержка рациональных Безье для CAD, генерация равноудалённых точек, маршрутизация рёбер в диаграммах.
  • Некоторые ищут обучающие ресурсы по математике для реализации подобных алгоритмов; рекомендованы видео Freya Holmér.
  • Поднят вопрос о создании Python-биндингов и использовании WASM для работы в браузере.