← На главную

Shirei: GUI-фреймворк для Go на чистом языке — бинарник 10 МБ

12.07.2026 16:55 · hackernews

Shirei — это новый кроссплатформенный GUI-фреймворк для Go. Вся разметка пишется на чистом Go, без HTML и JavaScript. Один и тот же код даёт идентичные программы под MacOS, Windows и Linux. Для Linux это ещё и самый простой способ получить самодостаточное GUI-приложение без внешних зависимостей.

Название «Shirei» — это японское произношение «Simple Layout» (シンプル・レイアウト → シレイ).

Авторы исходят из опыта: единственный адекватный способ писать GUI — immediate mode API. Другие библиотеки либо требуют писать свой бэкенд, либо плохо работают на разных платформах, либо не умеют нелатинский текст. Immediate mode — это не про отрисовку каждого кадра. Суть в том, что ты каждый кадр описываешь, как UI должен выглядеть, исходя только из данных. Именно поэтому React победил — не надо вручную следить за виджетами и синхронизировать их состояние. Просто говоришь: «здесь кнопка, на ней такой текст, при клике делаем то-то». Не надо отвечать на вопросы «существовала ли кнопка раньше» или «что с ней, когда она не нужна». Это ключевая идея immediate mode.

Shirei — не просто «рисовалка». Это полноценный фреймворк, который работает из коробки без шаблонного кода. Типичный бинарник весит ≈10 МБ. Полная поддержка интернационального текста: сложное формирование, двунаправленная верстка, системные шрифты, IME (редактор методов ввода) для восточноазиатских языков. Гибкая верстка и стилизация — не привязан к стандартному набору виджетов, можно делать свои. API простой как для людей, так и для AI-агентов. Авторы предлагают попросить последние модели ИИ написать программу на Shirei — и уверяют, что результат удивит.

В репозитории есть несколько примеров. Рекомендуют начать с haystack. Для запуска достаточно создать main.go с минимальным кодом, выполнить go mod init main, go mod tidy и go run .. В примере создаётся окно 300×100, внутри контейнера с розовым фоном размещены счётчик и кнопка «Increment». При каждом клике счётчик увеличивается — классический immediate mode.

Читать оригинал →