Relm4でRust製クロスプラットフォームUI開発がより自然に
Relm4 makes developing beautiful cross-platform applications idiomatic
Relm4は、Rustで美しいクロスプラットフォームアプリケーションを開発するためのフレームワークです。Elmアーキテクチャに基づく宣言的なUI構文を提供し、GTKを基盤としているため、Windows、macOS、Linuxでネイティブに動作します。Rustの型システムを活用した堅牢で保守性の高いコードを書くことができ、非同期処理や再利用可能なコンポーネントもサポートしています。ドキュメントも充実しており、開発者はすぐに始めることができます。
Relm4は、Rustの型システムを活用して、堅牢で保守性の高いコードを書くことを可能にします。
HNでの議論
16- slacknatcher12
ドキュメントを読んで、Haskellとgi-gtk4を使った自分のソリューションと多くの類似点があることに気づきました。https://bichanna.github.io/posts/tea-time/ を読んだ人なら誰でも同じアイデアを得るでしょう。これは基本的に次のように要約されます:
1. GTKなどのネイティブウィジェットシステムを使用する(Qtも評価しました)
2. ウィジェットを、props/modelが変更されたときにウィジェットを更新する方法を認識するコンポーネントデータ型にラップする。
3. ウィジェットに渡されるディスパッチクロージャを定義し、メッセージを受け入れる。ウィジェット上のアクションは、参照を変更する代わりにこれを使用する。
4. そのディスパッチクロージャはコンポーネントを認識し、すべてのウィジェットで更新関数を呼び出します。
長時間実行される計算にはいくつかの追加の複雑さがありますが、モデルは構築するための良い基盤です。relmチームに幸運を祈ります。おそらくRustでプログラミングするときにそれらを使用するでしょう。
- WD-42
私は最後のプロジェクトでプレーンなgtk-rsを使用しましたが、Rustとgobjectシステムの間には確かにいくつかの摩擦があります。次のプロジェクトではrelm4を試してみようと思います。必要に応じてgtk-rsに戻れるようです。
- chadcmulligan
興味深い - クロスプラットフォームを求めるなら、Flutter/Dartの方がよりクロスプラットフォームなソリューション(モバイル、デスクトップ、ウェブ)のようです。または、ウェブなしのDelphi/Lazarus。