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는 Ada 언어를 위한 현대적인 GUI 라이브러리로, CSS 스타일링, XML UI, SDL3 기반의 네이티브 구현을 제공합니다. 웹 개발에서 익숙한 CSS 선택자, 의사 클래스, 트랜지션, 그라디언트, 박스 섀도우 등을 지원하며, 개발 중에는 재컴파일 없이 실시간으로 스타일 변경을 확인할 수 있습니다. XML로 UI를 선언하거나 순수 Ada 코드로 직접 위젯 트리를 구성할 수 있으며, SVG, Lottie 애니메이션, HTML 뷰, 국제화(i18n), 에셋 번들링 등 풍부한 기능을 포함합니다. 단일 실행 파일(<10MB)로 배포할 수 있고, Windows XP부터 최신 macOS, Linux, WebAssembly까지 다양한 플랫폼을 지원합니다. 브라우저에서 라이브 데모를 체험할 수 있으며, 개발 전용 MCP 브리지를 통해 AI 도구가 앱을 스크린샷하고 위젯 트리를 탐색하며 UI를 자동으로 제어할 수 있습니다.
Adi2는 Ada에 현대적인 UI 스택의 편리함을 제공합니다 — CSS 스타일링, XML 레이아웃, 애니메이션, SVG와 Lottie 그래픽, 국제화, 에셋 번들링까지 — 모두 SDL3 위에 네이티브로 구현되었습니다.
HN 토론
23- Rochus
멋진 프로젝트네요. SDL3를 사용한 것은 좋은 생각입니다. SDL2보다 훨씬 많은 기능을 제공해서, 모든 기능을 갖춘 플랫폼 독립적인 프로그램을 만들려면 다른 라이브러리를 많이 사용해야 했던 것에 비해 훨씬 낫습니다. 단점이라면 SDL3 자체가 (SDL2처럼) 꽤 크다는 점일 수 있습니다. Ada는 (안타깝게도) 유행이 지났지만, 여전히 인상적이고 훌륭한 언어입니다. 여전히 흥미로운 선택이네요. GUI 라이브러리에 대한 선택과 계획에 대해 더 많은 정보를 주실 수 있을까요?
- nicoburns
당연한 질문을 하겠습니다: 왜 ADA인가요?
---
제 프레임워크 (Dioxus Native - https://github.com/dioxuslabs/blitz)는 비교 표에 아주 잘 맞을 것 같습니다:
- 독립 실행형 OS 네이티브 앱 번들로 컴파일
- <10 MB (Oz로 컴파일 시) 또는 ~15MB (O3 사용 시) (더 줄일 수도 있음)
- GPU 또는 CPU 렌더링
- Windows 10+ / macOS / Linux / 모바일 / wasm / (+ Dioxus Web으로 웹 DOM)
- Rust
- 메모리 안전성: borrow checked
- 스타일링: CSS (지원 매트릭스: https://blitz.is/status/css)
- 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(반복하지 마라)해야 합니다.