Repolode
marc2332

marc2332/freya

Rustでデスクトップやモバイルアプリを構築するための、クロスプラットフォーム対応の宣言的なネイティブGUIライブラリ。

スター
3,344
フォーク
151
未解決の Issue
42
最終コミット
5 時間前

これは何?

Freyaは、デスクトップをはじめとする各種プラットフォームでネイティブなインターフェースを描画する、Rust向けの宣言的GUIライブラリです。UIはRustの関数やコンポーネントで記述でき、use_stateなどのフックで設定した状態が変わると、その状態に依存する部分が自動的に再描画されます。バージョン0.4以降はDioxusではなく、独自のリアクティブコアを基盤としています。

Button、Switch、Slider、VirtualScrollView、Calendar、ColorPickerなど、すぐに使えるコンポーネントを備えています。オプションのfeature flagを有効にすると、tree-sitterベースのコードエディター、Markdownビューア、ルーティング、freya-radioによるグローバル状態管理、Fluentベースのi18n、Material Designのスタイリング、BlitzによるHTML/CSSの描画、PTY対応のターミナルエミュレーター、Plottersによるプロット機能を追加できます。

freya-testingを使ったヘッドレステストにも対応しており、クリックをシミュレートしたり、UIを画像ファイルに描画したりできます。また、コンポーネントツリーを調べるためのdevtoolsアプリも用意されています。

主な機能

  • 01フックベースの状態管理を備えた宣言的なコンポーネントモデル。状態に依存するUIは自動的に再描画されます。
  • 02Button、Switch、Slider、Calendar、VirtualScrollViewなどの組み込みコンポーネント。
  • 03テキスト処理にRope、シンタックスハイライトにtree-sitterを使うオプションのコードエディター。
  • 04feature flagで追加できるルーティング、グローバル状態管理、Fluentベースの国際化。
  • 05PTY対応の組み込みターミナルエミュレーターと、BlitzによるHTML/CSSの描画。
  • 06UIをファイルに描画できるヘッドレステスト。

ユースケース

  • Rustだけでネイティブなデスクトップツールやユーティリティを構築する。
  • コードエディターやターミナルベースのインターフェースなど、開発者向けツールを作成する。
  • プロット機能を使ってデータ可視化ダッシュボードを試作する。
  • ウィンドウを開かずにRust製GUIアプリのUIテストを書く。

クイックスタート

  1. 1

    Cargo.toml に Freya を追加する

  2. 2

    サブモジュールを含めてリポジトリをクローンする

    git clone --recurse-submodules https://github.com/marc2332/freya.git
  3. 3

    プロジェクトディレクトリに移動する

    cd freya
  4. 4

    サンプルを実行する

    cargo run --example counter

使う前に知っておきたいこと

  • サンプルの実行には、Rust の開発環境と git サブモジュールが必要です。
  • Windows の windows-gnu ビルドでは、コンパイルエラーが発生することがあります。

収録されている特集

トピック

よくある質問

freya とは?
Rustでデスクトップやモバイルアプリを構築するための、クロスプラットフォーム対応の宣言的なネイティブGUIライブラリ。 Freyaは、デスクトップをはじめとする各種プラットフォームでネイティブなインターフェースを描画する、Rust向けの宣言的GUIライブラリです。UIはRustの関数やコンポーネントで記述でき、use_stateなどのフックで設定した状態が変わると、その状態に依存する部分が自動的に再描画されます。バージョン0.4以降はDioxusではなく、独自のリアクティブコアを基盤としています。
freya は無料で使えますか?ライセンスは?
freya は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
freya は今もメンテナンスされていますか?
活発にメンテナンス中。freya の最終コミットは 2026年11月7日 です。
freya は何に使えますか?
Rustだけでネイティブなデスクトップツールやユーティリティを構築する。 コードエディターやターミナルベースのインターフェースなど、開発者向けツールを作成する。 プロット機能を使ってデータ可視化ダッシュボードを試作する。 ウィンドウを開かずにRust製GUIアプリのUIテストを書く。
freya のインストール方法は?
Cargo.toml に Freya を追加する サブモジュールを含めてリポジトリをクローンする: git clone --recurse-submodules https://github.com/marc2332/freya.git プロジェクトディレクトリに移動する: cd freya サンプルを実行する: cargo run --example counter
freya はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/marc2332/freya

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト