Adi2 - Modern GUI library for Ada with CSS styling and XML UI

Show HN: A Modern GUI Library for Ada: CSS Styling, XML UI, SDL3

Adi2 - Modern GUI library for Ada with CSS styling and XML UI

Adi2 — это современная библиотека графического интерфейса для Ada, которая предлагает привычные веб-разработчикам возможности: CSS-стили с живой перезагрузкой, декларативные XML-макеты, анимации, поддержку SVG и Lottie, интернационализацию и упаковку ресурсов в один исполняемый файл. Библиотека построена на SDL3 и работает на Windows (включая XP), macOS, Linux и WebAssembly. Размер итогового приложения — менее 10 МБ. Adi2 позволяет описывать интерфейсы как на XML, так и на чистом Ada, а также включает встроенный HTML-виджет для отображения документации. Проект уже используется в производстве, но API может меняться. Попробуйте живые демо в браузере или начните с документации.

Adi2 даёт вам настоящий набор виджетов с удобствами, которые разработчики ожидают от современного UI-стека — CSS-подобные стили с живой перезагрузкой, декларативные XML-макеты, анимации, SVG и Lottie-графика, интернационализация и упаковка ресурсов — всё это реализовано нативно на Ada поверх SDL3.
  1. Rochus

    Крутой проект. Хорошая идея использовать SDL3; она даёт гораздо больше, чем SDL2, где приходилось подключать кучу других библиотек, чтобы стать платформонезависимым со всеми фичами. Минус может быть в том, что сама SDL3 (как и SDL2) довольно большая. Ada немного вышла из моды (к сожалению), но это всё ещё впечатляющий, отличный язык. Всё равно интересный выбор. Может, расскажешь подробнее о своём выборе и планах насчёт GUI-библиотеки.

  2. nicoburns

    Задам очевидный вопрос: почему ADA?

    ---

    Мой фреймворк (Dioxus Native - https://github.com/dioxuslabs/blitz) неплохо вписался бы в твою сравнительную таблицу:

    - Компилируется в автономный нативный бандл приложения для ОС

    - <10 МБ (сборка с Oz) или ~15 МБ (с O3) (можно ужать ещё меньше)

    - Рендеринг через GPU или CPU

    - Windows 10+ / macOS / Linux / мобильные / wasm / (+ веб-DOM через Dioxus Web)

    - Rust

    - Безопасность памяти: проверка заимствований

    - Стилизация: CSS (матрица поддержки: https://blitz.is/status/css)

  3. tosti

    Там столько повторений. Например: (adi-json.adb)

    if not W.After_Key (W.Depth) then

    -- things

    else

    W.After_Key (W.Depth) := False;

    end if;

    -- ...more things...

    W.After_Key (W.Depth) := False;

    И что за дела с этими именами файлов? Если заменить adi- на TIMMEH, поймёшь, о чём я.

    Код должен быть более DRY (don't repeat yourself).

Ещё за этот день

2026-08-24