2026-06-21

週次オープンソース: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 のように読める——ColumnRowButton("+").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_RIGHTS fd 受け渡し、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-geometryforma-layoutforma-animv0.0.1

puressh:証明書、KRL、PAM/MFA

puresshv0.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.10.6.14、Rust 1.88 MSRV を尊重)。

今週その他

  • rsurlintl は落ち着き 続けた——大きな週のあとの 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 とヘッドレス。ブラウザはあらゆる層を 一度に動かすアプリケーションだ——層を築いてきたのは、まさに そのためだ。