このプロジェクトについて

Floemは、きめ細やかなリアクティビティと人間工学に基づいた宣言的コードに焦点を当てたRustネイティブUIライブラリです。READMEでは、Xilem、Leptos、ruiに触発された高性能な宣言的UIライブラリであると説明されています。ビューツリーは一度だけ構築され、これによりビュー生成関数における意図しないボトルネックの発生を回避できるとしています。また、効率的なUIコードを記述するための仮想リストなどのツールも提供しています。 このライブラリはWindows、macOS、Linuxに対応したクロスプラットフォーム設計です。レンダリングには、vgerまたはvelloを介したwgpu、あるいはAnyRenderのGPUバックエンドSkiaレンダラーを使用できます。GPUが利用できない場合は、tiny-skiaベースのCPUレンダラーが使用されます。レイアウトにはTaffyを採用しており、あらゆるビューノードでFlexboxとGridの両方をサポートしています。 Floemには、leptos_reactiveに触発された「signals」と呼ばれるリアクティブプリミティブが含まれており、UIの状態更新を最小限かつ効率的に維持します。ウィジェットの外観と動作は、クラスとテーマ設定をサポートするスタイリングAPIを通じてカスタマイズ可能です。サードパーティ製のテーマもインストールできます。また、トランジションとキーフレームアニメーションをサポートしており、スプリング関数によるイージングが可能です。 READMEで言及されているその他の機能には、レイアウトデバッグ用のエレメントインスペクタ、グローバルなライト/ダークテーマ、カスタムテーマを宣言するための組み込みデザインシステム、そしてFluentクレートによるローカライゼーション(フォールバック、ランタイムでの言語切り替え、部分的な言語オーバーライドを含む)があります。クイックスタート例では、RwSignal、Button、Labelを使用したカウンターが示されています。ドキュメントやウィジェットギャラリーを含むコード例へのリンクも提供されています。プロジェクトはまだ成熟段階にあり、v1までの間に時折破壊的な変更が行われる可能性があると記されています。コントリビューションは歓迎されており、すぐに利用可能なLapdevクラウド開発環境が提供されています。