Repolode
elixir-crab

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. 1

    リポジトリをクローンする

  2. 2

    依存関係を取得する

    mix deps.get
  3. 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 の数値は毎日更新されます。

関連プロジェクト