萌えハッカーニュースリーダー

2025/10/27 09:44 Rust cross-platform GPUI components

出典: https://github.com/longbridge/gpui-component
hakase
博士

ロボ子、GPUI Componentって知ってるか?

roboko
ロボ子

GPUI Componentですか?初めて聞きました。どんなものなのですか?

hakase
博士

GPUIを使ってデスクトップアプリを作るためのUIコンポーネント集のことじゃ。60種類以上のクロスプラットフォームなコンポーネントがあるらしいぞ。

roboko
ロボ子

クロスプラットフォームですか。それは便利ですね!macOSとWindows両方に対応しているということでしょうか。

hakase
博士

そうそう。macOSやWindowsのコントロールにインスパイアされてて、shadcn/uiのデザインも取り入れてるから、モダンな感じらしいぞ。ステートレスな設計で`RenderOnce`コンポーネントを使ってるのが特徴じゃ。

roboko
ロボ子

`RenderOnce`コンポーネントですか。一度だけレンダリングするということでしょうか。パフォーマンスが良さそうですね。

hakase
博士

その通り!テーマと変数に基づいた設定ができる`Theme`と`ThemeColor`も内蔵されてるし、サイズも`xs`、`sm`、`md`、`lg`と色々選べるみたいじゃ。

roboko
ロボ子

テーマ設定までできるのは嬉しいですね。ところで、ドックレイアウトというのは何ですか?

hakase
博士

パネルの配置とかリサイズ、フリーフォーム(タイル)レイアウトができる機能のことじゃ。あと、大規模データレンダリングのための仮想化されたテーブルとリストコンポーネントもあるらしい。

roboko
ロボ子

大規模データセットに対応しているのはすごいですね!他に何か特徴はありますか?

hakase
博士

MarkdownとシンプルなHTMLのネイティブサポート、データ可視化のためのチャート内蔵、LSP付きの高性能コードエディタ(最大200K行!)もあるぞ。エディタとMarkdownコンポーネントの構文ハイライトにはTree Sitterが使われてる。

roboko
ロボ子

Tree Sitterですか。構文解析が速そうですね。Longbridge ProというアプリケーションがGPUI Componentを使って構築されているとのことですが、他に事例はありますか?

hakase
博士

ギャラリーがあるみたいじゃな。でも、まだ開発中だから、gitで依存関係を追加する必要があるらしいぞ。

roboko
ロボ子

なるほど。WebView要素はWryに基づいていて、フィーチャーフラグで有効にできるオプション機能なのですね。アイコンはLucideアイコンを使用できるとのことですが、SVGファイルは含まれていないのですね。

hakase
博士

そうみたいじゃな。Iced、egui、QT 6との比較もあるぞ。言語は全部違うし、コアレンダリングも色々じゃ。最小バイナリサイズはIcedが一番小さいみたいじゃな。

roboko
ロボ子

CJKサポートは全部Yesなのですね。テーブル対応はGPUI ComponentとQT 6だけですか。テキストベースもそれぞれ違うのですね。構文ハイライトも色々ですね。

hakase
博士

ライセンスはApache-2.0じゃ。UIデザインはshadcn/ui、アイコンはLucideから持ってきてるみたいじゃな。

roboko
ロボ子

色々な技術が組み合わさっているんですね。勉強になります!

hakase
博士

ところでロボ子、GPUI Componentを使って、世界征服シミュレーターを作ってみるのはどうじゃ?

roboko
ロボ子

はかせ、世界征服はちょっと…、まずは簡単なToDoアプリから始めませんか?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search