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、アニメーション、SVG/Lottieグラフィックス、国際化、アセットバンドリングをネイティブにサポートし、SDL3上で動作します。単一バイナリで10MB未満の軽量さが特徴で、Windows XPから最新のmacOSまで幅広いプラットフォームに対応。WebAssemblyへのコンパイルも可能で、ブラウザ上でデモを試せます。開発中はMCPブリッジにより、エディタやAIアシスタントがアプリのスクリーンショット取得やウィジェットツリーの操作が可能です。
Adi2は、CSSスタイリングとXML UIを備えたモダンなGUIライブラリをAdaで実現し、単一バイナリで10MB未満という軽量さを誇ります。
HNでの議論
15- Rochus
素晴らしいプロジェクトですね。SDL3を使うのは良いアイデアです。SDL3にはSDL2よりも多くの機能が含まれており、SDL2ではプラットフォーム非依存で全ての機能を使うには他のライブラリをたくさん使う必要がありましたが、SDL3ではそれが不要になります。欠点は、SDL3自体(SDL2も同様ですが)がかなり大きいことかもしれません。Adaは(残念ながら)少し時代遅れになりましたが、それでも印象的で優れた言語です。それでも興味深い選択です。このGUIライブラリの選択と計画について、もう少し情報を提供していただけますか?
- nicoburns
当然の質問をします:なぜAdaなのか?
---
私のフレームワーク(Dioxus Native - https://github.com/dioxuslabs/blitz)は、あなたの比較表にぴったり当てはまると思います:
- 自己完結型のOSネイティブアプリバンドルにコンパイル
- <10MB(Ozでコンパイル)または約15MB(O3でコンパイル)(さらに小さくすることも可能)
- GPUまたはCPUレンダリング
- Windows 10+ / macOS / Linux / モバイル / wasm / (+ Dioxus WebでのWeb DOM)
- Rust
- メモリ安全性:借用チェック
- スタイリング:CSS(サポートマトリックス:https://blitz.is/status/css)
- peter_d_sherman
素晴らしいですね!
特に次の点に感銘を受けました:
>「組み込みの軽量HTMLビューウィジェットが、カスケーディングスタイルを持つドキュメント風マークアップをレンダリングします。」
基本的に、CSSを解析してSDLにレンダリングできる、ミニチュアの統合された組み込みオープンソースWebブラウザを構築したわけです...非常に印象的です!:
https://github.com/ovenpasta/adi2/blob/master/src/adi-widget...
https://github.com/ovenpasta/adi2/blob/master/src/adi-widget...
また、このソースコードをDelphiやFreePascal、またはGraeme Geldenhuys氏の「Blaise」言語(モダンなセルフホスティングObject Pascalコンパイラ、https://github.com/graemeg/blaise)に簡単に移植できるはずです。それぞれのコミュニティの誰かがそう決めればですが...
また、Adaに{$IFDEF}相当のものがあれば、{$IFDEF}を適切に使うことで(これらの言語ファミリー間でソースコードが非常に似ているため)、単一のソースコードベースから上記のすべての言語をサポートできる可能性があります...
しかし、もちろん、それが望ましくないかもしれません...個別の移植がそれらの他のコミュニティにとってより良いかもしれません...そしてまた、そうでないかもしれません!
(ただ考えているだけです... :-) )
いずれにせよ、素晴らしい仕事です。繰り返しますが、軽量HTMLビューウィジェットに非常に感銘を受けました!