週次オープンソース:forma——スタック全体の上に立つ Pure-Rust UI ツールキット
ここ数週間が暗号の床から Pure-Rust スタックを積み上げてきた ——プリミティブ、圧縮、SSH、curl、国際化——とすれば、今週は その頂点を載せた:アプリケーション層だ。forma は、自前の メディアスタックの上で自分のインターフェースを描き、各 OS と raw FFI で話すクロスプラットフォーム UI ツールキット。そして puressh は「スキャフォールドを埋めている」段階からプロダクション 級 SSH へと渡った。
forma:自前描画の UI ツールキット
forma は「Rust の
クロスプラットフォーム UI ライブラリ/ツールキット」で、Linux、
macOS、Windows、Android、iOS、そして Web に 美しく、完全に
テーマ可能で、ピクセル一致 のインターフェースを描く——可能な
限り OS に近く留まりつつ、サードパーティコードへの依存は可能な
限り少なく。すべての 2D 描画(シーングラフ、CPU ラスタライザ、
フォントシェイピング、画像デコード、SVG)には Pure-Rust の
oxideav メディアスタックを使い、
その周りのすべてを足す:OS ごとのネイティブウィンドウと入力、
描画バッファの提示、そして宣言的でリアクティブなツールキット。
API は SwiftUI や Flutter のように読める——Column、Row、
Button("+").on_tap(...)、Text(...).font_size(...)——が、その
下の描画とプラットフォーム基盤はまるごと自前だ。
リポジトリは一週間(169 コミット)で、何もないところから動く マルチプラットフォームツールキットへ進んだ。積み上げた層:
- GPU バックエンド、各 API への raw FFI — 完全な Metal
パイプライン越しの三角形(macOS)、Direct3D 11(Windows、
WARP)、WebGPU(Web、ヘッドレス Chrome の CI)、そして
Linux の OpenGL/EGL、オンスクリーン提示経路は
App::render_withに配線。Linux 経路は深い:サーバの DRM fd を受け取る DRI3、 Unix ソケット越しのSCM_RIGHTSfd 受け渡し、GBM 経由で特定 GPU に束ねた EGL、ブラウザコンテンツの継ぎ目向けの dma-buf エクスポート/インポート。 - OS ごとのネイティブウィンドウ — X11 の真のマルチウィンドウ
(各ウィンドウが
Pane)、macOS Cocoa、Windows、NativeActivity経由の Android(CI でエミュレータ検証)、iOS UIKit(シミュ レータで検証)。 - 三つのデスクトップすべてでアクセシビリティ — AT-SPI 越しに
ツリーを露出する手書きの D-Bus クライアント(Linux)、
NSAccessibility(macOS)、手書きの UI Automation プロバイダ (Windows)。 - ウィジェットツールキット — シーンクリッピング付きのスクロール コンテナ、メニュー/ダイアログ/ツールチップ/ラジオ/プログレス/ スピナーを持つオーバーレイ層、タブと右クリックのコンテキスト メニュー、クリップボード(X11 CLIPBOARD セレクションに配線した コピー/カット/ペースト)、xdg-desktop-portal 経由のネイティブ ファイルダイアログ、変化のない領域をスキップする領域ベースの 再描画。四則演算の電卓デモが端から端まで動かす。
これは「Pure Rust、サードパーティコード最小、OS と直接話す」
というプロジェクト全体を、ライブラリ集ではなくアプリケーション
プラットフォームとして可視化する部品だ。最初に切られたクレート:
forma-geometry、forma-layout、forma-anim が v0.0.1。
puressh:証明書、KRL、PAM/MFA
puressh(v0.0.6)は
今週を機能完備の SSH に到達することに費やした。OpenSSH 証明書
が五フェーズで着地した:パース/検証コア、CASignatureAlgorithms、
ホスト証明書(サーバが提示、クライアントが検証)、ユーザ証明書
(クライアントが提示、サーバが認可)、そしてクリティカルオプション
(force-command、source-address)、default-deny のユーザ証明書
拡張と、本物の OpenSSH sshd に対する端から端までの相互運用
テスト付き。鍵失効リスト(OpenSSH バイナリ KRL 形式)が証明書
と公開鍵の信頼ゲートに配線され、serial-list / serial-range の
失効付き。PAM は多段の keyboard-interactive 会話ブリッジと、
位置順を強制する多要素 AuthenticationMethods チェーンを得た。
セキュリティの地道な作業も並行して続いた:絶対的な
LoginGraceTime と、上限付きで panic しない accept ループ
(認証前 DoS)、証明書埋め込み鍵の 2048 ビット下限、StrictModes
の所有権+祖先チェック、X11 フォワーディングでのデフォルトの
MIT-MAGIC-COOKIE-1 検証、ObscureKeystrokeTiming のキー入力
タイミング難読化。ping@openssh.com の PING/PONG も追加し、
現行の暗号の床を追った(purecrypto 0.6.1 → 0.6.14、Rust
1.88 MSRV を尊重)。
今週その他
- rsurl と intl は落ち着き 続けた——大きな週のあとの torrent エンジンと Unicode サーフェス の追い込み。
- oxideav-io が新顔: 画像/動画/音声/3D/PDF/SVG のソースを自動検出して oxideav-core レジストリ経由でディスパッチする、汎用の open/save/transcode エントリポイント——forma が描画に通す 単一の玄関だ。
- oxideav-aptx — aptX classic + aptX HD の Bluetooth オーディオ。
- OxideAV のコーデックごとのスイープは音声・コンテナのクレート 全体で続いた(aac、mp4、mov、theora、jpeg2000、dts、…)。
来週
スタック全体が指していた頂点: argus、Pure-Rust で 書かれた Web ブラウザだ。これまで築いたすべての上に立つ——UI は forma、JavaScript エンジンは kataan(ツリーウォーク インタプリタ、レジスタバイトコード VM、x86-64 JIT、WebAssembly 段を備えた Pure-Rust の ECMAScript 実装)、ネットワークは rsurl スタック、メディア層は oxideav、その下に purecrypto。マルチ プロセス、自前エンジン、GUI とヘッドレス。ブラウザはあらゆる層を 一度に動かすアプリケーションだ——層を築いてきたのは、まさに そのためだ。