Rust で書かれた UI Toolkit の OrbTk 0.3.1-alpha2 を試してみた

はじめに

Rust の GUI ライブラリーを GUI — list of Rust libraries/crates // Lib.rs で見て、成熟してそうなのは gtk のようですが、 OrbTk — Rust GUI library // Lib.rs というのも気になったので試してみました。

gtk のような既存のGUIライブラリーに依存しないのと redox-os/orbtk: The Rust UI-Toolkit.Platforms を見てターゲットのプラットフォームの多さが良いなと思いました。

2020-08-10 時点のバージョンは デフォルトブランチである devleop の最新のコミット @f0d53cd0.3.1-alpha2 です。

結論を先に書くとまだアルファなのでアプリケーションをばりばり開発するにはまだ早そうです。 が、今後が楽しみです。

Ubuntu 20.04 LTS

試した際の rustup, rustc, orbtk のバージョンは以下の通りです。

$ rustup --version
rustup 1.22.1 (b01adbbc3 2020-07-08)
$ rustc --version
rustc 1.47.0-nightly (6c8927b0c 2020-07-26)
hnakamur@thinkcentre:~/ghq/github.com/redox-os/orbtk$ git log -1
commit f0d53cd645f55f632173a89aee2fa85edbd9e96f (HEAD -> develop, origin/develop, origin/HEAD)
Author: Florian Blasius <flovanpt@posteo.de>
Date:   Fri Jul 31 00:11:50 2020

    text input fixes.

examples ディレクトリーにいくつか例があります。 そのうち widgets が現状用意されているコンポーネントを試せるサンプルになっています。

cargo run --example widgets

orbtk widgets example

試してみて気づいた点。

Windows 10

試した際の rustup, rustc, orbtk のバージョンは以下の通りです。

C:\Users\hnakamur\ghq\github.com\redox-os\orbtk>rustup --version
rustup 1.22.1 (b01adbbc3 2020-07-08)

C:\Users\hnakamur\ghq\github.com\redox-os\orbtk>rustup toolchain list
stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc
nightly-x86_64-pc-windows-msvc (default)

C:\Users\hnakamur\ghq\github.com\redox-os\orbtk>rustc --version
rustc 1.47.0-nightly (6c8927b0c 2020-07-26)
C:\Users\hnakamur\ghq\github.com\redox-os\orbtk>git log -1
commit f0d53cd645f55f632173a89aee2fa85edbd9e96f (HEAD -> develop, origin/develop, origin/HEAD)
Author: Florian Blasius <flovanpt@posteo.de>
Date:   Thu Jul 30 17:11:50 2020 +0200

    text input fixes.
cargo run --example widgets

orbtk widgets example on Windows

試してみて気づいた点。

git switch master して 0.3.1-alpha2 でも試してみましたが同じでした。

C:\Users\hnakamur\ghq\github.com\redox-os\orbtk>git log -1
commit 4c2382a2f57166bdd8aa57651821b7dd68582934 (HEAD -> master, tag: 0.3.1-alpha2, origin/master)
Author: Florian Blasius <flovanpt@posteo.de>
Date:   Wed Apr 22 14:17:58 2020 +0200

    Up.

おわりに

ちょうどたまたま Nora “Black Lives Matter” Codes ⌨️さんはTwitterを使っています 「are there any pure #Rust GUI libraries targeted at the desktop? a la GTK or Qt, rather than dear imgui or like that」 / Twitter というツイートを見かけました。

Rust で書かれた UI ツールキットとして orbtk 以外に次の2つがあげられていました。

成熟度で言うとやはり gtk-rs/gtk: GTK+ 3.x bindings and wrappers for Rust らしいです。