Slintは、Rust、C++、JavaScript、PythonアプリでネイティブUIを構築できる宣言型GUIツールキットです。
elixir-crab/gpui
RustベースのGPUIフレームワークで宣言的UIを描画する、ネイティブデスクトップアプリ構築用Elixirライブラリ。
- スター
- 118
- フォーク
- 4
- 未解決の Issue
- 12
- 最終コミット
- 4 日前
これは何?
GPUIを使うと、Elixirでネイティブデスクトップアプリケーションを開発できます。アプリケーションの状態、ウィンドウのレイアウト、UIの宣言はElixirで記述し、ネイティブのイベントループ、ウィンドウ、描画、フォーカス、IME、アクセシビリティはRustが処理します。UIはHEEx形式のテンプレートで記述でき、ポインター、キーボード、アクセシビリティ対応のアクティベーションイベントは、型付けされたイベント経路を通じてElixirに返されます。
同じ宣言的なアプリケーションを、ローカルのネイティブディスプレイ、ディスプレイサーバー不要の決定論的なテストディスプレイ、または別のマシン上のリモートディスプレイで実行できます。一般的なコントロールは、gpui-componentを基盤とする別パッケージのgpui_componentsから利用できます。Linux、Apple silicon搭載macOS、x86-64版Windows向けに、プリコンパイル済みのNIFアーカイブが提供されています。
このリポジトリはMixのumbrellaプロジェクトで、gpui、gpui_components、gpui_nativeの各パッケージと、リッチテキストのトランスクリプト、BEAMランタイムのダッシュボード、コンポーネントギャラリーなどのサンプルが含まれています。
主な機能
- 01ElixirでHEEx形式のテンプレートを使って宣言的にUIを記述
- 02ネイティブウィンドウ、フォーカス、IME、アクセシビリティをRustとGPUIで処理
- 03ディスプレイサーバーなしで動作する決定論的なテストディスプレイ
- 04権威あるセッションを別のマシンに保持するリモートディスプレイ
- 05UTF-16の位置情報、Undo/Redo、IMEに対応した永続的なネイティブテキスト編集
- 06仮想化されたコレクションと選択可能なリッチテキスト
ユースケース
- 既存のElixir/OTPシステムを基盤に、ネイティブデスクトップツールやダッシュボードを構築する
- ディスプレイサーバーなしでElixirデスクトップUIのテストを書く
- Elixirから制御するアプリケーションのウィンドウを別のマシンに表示する
- ボタンやフォームなどの一般的なコントロールをElixirデスクトップアプリに追加する
クイックスタート
- 1
リポジトリをクローンする
- 2
依存関係を取得する
mix deps.get - 3
hello window のサンプルを実行する
RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
使う前に知っておきたいこと
- プリコンパイル済みのネイティブバイナリは、Linux、Apple silicon 搭載の macOS、x86-64 Windows のみを対象としています。
- ネイティブの表示機能を使うには、ローカルのディスプレイサーバーとプラットフォーム固有の前提条件が必要です。
収録されている特集
トピック
よくある質問
- gpui とは?
- RustベースのGPUIフレームワークで宣言的UIを描画する、ネイティブデスクトップアプリ構築用Elixirライブラリ。 GPUIを使うと、Elixirでネイティブデスクトップアプリケーションを開発できます。アプリケーションの状態、ウィンドウのレイアウト、UIの宣言はElixirで記述し、ネイティブのイベントループ、ウィンドウ、描画、フォーカス、IME、アクセシビリティはRustが処理します。UIはHEEx形式のテンプレートで記述でき、ポインター、キーボード、アクセシビリティ対応のアクティベーションイベントは、型付けされたイベント経路を通じてElixirに返されます。
- gpui は無料で使えますか?ライセンスは?
- gpui は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- gpui は今もメンテナンスされていますか?
- 活発にメンテナンス中。gpui の最終コミットは 2026年11月3日 です。
- gpui は何に使えますか?
- 既存のElixir/OTPシステムを基盤に、ネイティブデスクトップツールやダッシュボードを構築する ディスプレイサーバーなしでElixirデスクトップUIのテストを書く Elixirから制御するアプリケーションのウィンドウを別のマシンに表示する ボタンやフォームなどの一般的なコントロールをElixirデスクトップアプリに追加する
- gpui のインストール方法は?
- リポジトリをクローンする 依存関係を取得する: mix deps.get hello window のサンプルを実行する: RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
- gpui はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/elixir-crab/gpui
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Rustでデスクトップやモバイルアプリを構築するための、クロスプラットフォーム対応の宣言的なネイティブGUIライブラリ。
アプリのロジックをGoで実行し、各プラットフォームが独自のネイティブビューで描画するクロスプラットフォームUIエンジン。
GPUIフレームワークでクロスプラットフォームアプリを構築するための、75以上のスタイル付きコンポーネントを備えたRust製デスクトップGUIキット。
各OSのネイティブウィジェットでアプリを描画するPython GUIツールキット。
OSのwebviewを使ったWebフロントエンド、またはGPUで描画するネイティブUIを備えたデスクトップアプリを構築するGoフレームワーク。