Adi2: Ada 语言现代图形界面开发库

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

Adi2: Ada 语言现代图形界面开发库

Adi2 是一款为 Ada 语言打造的现代图形用户界面库,基于 SDL3 构建。它支持类似 CSS 的样式定义与实时重载,允许开发者通过 XML 声明式布局或直接编写 Ada 代码来构建界面。Adi2 内置 HTML 视图、SVG 及 Lottie 动画渲染,支持国际化和本地化,并能将字体、图片等所有资源打包进单个可执行文件。无论是 Windows XP 还是现代 macOS,甚至 WebAssembly 环境,Adi2 都能提供一致且高效的跨平台体验,让 Ada 开发者也能享受现代化的 UI 开发流程。

用熟悉的 CSS 语法设计界面,编辑保存即刻生效,无需重新编译;将字体、图片和翻译全部打包进一个可执行文件,实现真正的零依赖部署。
  1. Rochus

    很酷的项目。选用 SDL3 是个好主意;相比 SDL2,它带来的功能要多得多,而在 SDL2 时代,要实现所有功能的跨平台兼容,你不得不依赖大量其他库。缺点可能是 SDL3 本身(就像 SDL2 一样)体积相当大。Ada 语言确实有点过时了(很遗憾),但它依然是一门令人印象深刻、极其优秀的语言。这仍然是一个有趣的选择。也许你可以多分享一些关于你选择 Ada 以及该 GUI 库未来计划的细节。

  2. nicoburns

    我要问一个显而易见的问题:为什么要选 ADA?

    ---

    我的框架(Dioxus Native - https://github.com/dioxuslabs/blitz)应该很适合放进你的对比表中:

    - 编译为自包含的原生 OS 应用包

    - 小于 10 MB(使用 Oz 编译)或约 15MB(使用 O3)(还可以进一步压缩)

    - 支持 GPU 或 CPU 渲染

    - 支持 Windows 10+ / macOS / Linux / 移动端 / wasm /(配合 Dioxus Web 支持 Web DOM)

    - 语言:Rust

    - 内存安全:经过借用检查(borrow checked)

    - 样式: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