週次オープンソース:test262 の 93% を通す JS エンジン、二つのデータエンジン、そしてハードウェアへ
これまでで最も広い週の一つ——Pure-Rust スタックのほぼすべての層が 一度に動いた。JavaScript エンジンが公式適合性スイートの 93% を 超えた。二つのデータエンジン——キーバリューストアと SQL データ ベース——が並行して進んだ。暗号の床が深まり、rsurl の向かいに座る HTTP サーバが着地し、UI ツールキットは改名され——そして意外にも、 作業は FPGA ゲートウェアと USB Power Delivery で実際のハードウェア に届いた。
kataan:test262 の 93%
kataan——argus ブラウザ を動かすことになる Pure-Rust の JavaScript エンジン——は今週を test262(公式 ECMAScript 適合性スイート)を挽くことに費やし、 44,189 テスト中およそ 41,000(約 93%)が通る ところに到達した。 その数字が物語だ:ゼロから作った JS エンジンが、言語の大半で 主流エンジンと適合性のパリティに並んだ。
コミットはそこへ至る仕様忠実さの長い尾だ:with 文のオブジェクト
環境を字句的にスコープする、Promise.resolve/reject がサブ
クラスに NewPromiseCapability を使う、__proto__ セッタを
SetPrototypeOf のように検証、JSON.parse 文字列で未エスケープの
制御文字を拒否、for ヘッダ内の [+In] 文法、regex の早期エラー、
Array / Object が本物の呼び出し可能な関数セルになる——各修正が
再祝福された台帳に対してさらに数十テストを緑に反転させる。
pebbledb:Pebble の移植
pebbledb は CockroachDB の Pebble の Rust 移植だ。LevelDB / RocksDB 系譜の LSM キーバリューエンジン。 掲げる目標は 完全な 移植——機能とオンディスク形式の 100%——で、 今週それを広範なパリティまで押し進めた:WAL、バックグラウンド フラッシュとレベル化コンパクション、境界と prefix seek 付きの スナップショット一貫な双方向イテレーション、range キー、value ブロックと blob ファイル、チェックポイント、外部 sstable の取り込み。
相互運用の基準が本物だ:Pebble が読める table-format-v7 の
カラムナ sstable を書き、Pebble が書く value 分離データベース
(format 24)を読む、両方向。さらに自前の
minlz-rs 上の MinLZ
ブロック圧縮、非同期と flushable-ingest の経路、ApplyNoSyncWait、
遅延 value フェッチ、limited / next_prefix イテレータ一族も得た。
graphitesql:Pure-Rust の SQLite
graphitesql は
純粋で安全な no_std 対応の Rust による SQLite 再実装で、
単一クレート、SQLite 3 ファイル形式とのバイト単位の互換を狙う。
週あたりおよそ百コミットのペースで走っており、W26 はクエリ
エンジンへの重い押し込みだった。本物の SQLite ファイルを開き、
sqlite3 が PRAGMA integrity_check = ok で開けるデータベースを
作り、本物の sqlite3 CLI に対して差分検証される(1,600 超の
クエリコーパスと 360 超の focused スイート)。ライセンスは
blessing(パブリックドメイン)。
今週の通底線は VDBE——SQLite のレジスタマシン型バイトコード
エンジンで、graphitesql はこれをデフォルトで走らせ、まだ
コンパイルできない形だけツリーウォーカーにフォールバックする。
W26 は長いリストの形を VDBE に載せた:join / 派生テーブル / CTE /
ビュー / テーブル値関数の上のウィンドウ関数、json_each /
json_tree ソース、兄弟 CTE と複合 FROM ソース、非相関サブクエリ
の畳み込み。並んで ALTER TABLE がクロスオブジェクト伝播を覚えた
——RENAME COLUMN が依存するトリガ・ビュー・ネストしたサブクエリ
を書き換え、DROP COLUMN が依存ビューを壊す場合は拒否する——
prepare 時の正しさチェックの一群(join とサブクエリ越しの未知
カラム/関数を拒否、2⁵³ を超える整数を f64 経由でなく厳密に
比較)とともに。
usbmagic:ハードウェアへの転回
今週の意外な一手は usbmagic—— プログラマブルな USB テスト計測器 向けの Rust ライブラリ/CLI で、 最初の対象は Cynthion (Great Scott Gadgets の FPGA ボード)——加えて usbmagic-gateware、 FPGA ゲートウェアそのもの(ECP5 で USB 2.0 ホストコントローラ)。 これはスタックがソフトウェアの先、線の上へ届いたということだ。
ホスト側は nusb(Pure-Rust USB、libusb
なし)の上に建ち、今週は深く低レベルへ行った:Rust ネイティブの
Apollo クライアントとその上の JTAG トランスポート(ハードウェア
検証済みの IDCODE 読み)、本物の .bit ビットストリームを焼く
JTAG 越しの ECP5 SRAM コンフィグ、FUSB302B USB-PD コントローラを
駆動するゲートウェア内 I2C マスタ、そして端から端までの
USB Power Delivery——本物の Source_Capabilities(PPS 含む)
のキャプチャとデコード、TARGET-C VBUS の駆動、iPhone との
スペック時間どおりの PD Rev 3.0 交渉、双方向 pcapng トレース付き。
フォレンジックデバイス API は意図的に非準拠なトラフィックを
発行できる。
httpsd:rsurl のサーバ側
httpsd は Pure-Rust の
HTTP サーバ——HTTP/1.1、HTTP/2、HTTP/3——で、sans-I/O コア と
差し替え可能ランタイム(ブロッキングスレッドプール、tokio、
mio)を持つ。rsurl が Pure-Rust スタックのクライアントなら、
httpsd はサーバだ:自前ハンドラのライブラリか、ディレクトリや
TOML 設定を配る CLI として使う。ACME(自動 TLS)、権限ドロップ、
IP ごとの接続上限、SIGHUP 証明書リロード付きのグレースフル
シャットダウンを備える。今週の多くはセキュリティ:五つの HTTP/2
DoS findings、HTTP/3 のフィールドセクション上限、正しく
アンカーした QUIC ロスリカバリタイマー、percent-decode 済みパスの
ルーティング、静的ファイルのレースフリーな confined open
(TOCTOU / シンボリックリンク脱出)。
stipple:forma、改名——コンポジタとテーマ
forma UI ツールキットは
今週 stipple に改名 された。ブラウザが必要とする部品を完成
させた:ゼロコピー GPU フレーム共有付きのクロスプラットフォーム
コンポジタ——Linux では DRI3 / Present 経由の dma-buf(フレーム
同期の wait-fence 付き)、macOS では共有 IOSurface、Windows では
共有テクスチャハンドル——加えて CPU shm 経路越しのコンテンツ
プロセスコンポジット、そしてコンテンツプロセス向けの seccomp
サンドボックス。その上に:Material 3(Material You)のダイナミック
カラーテーマ、そして AT-SPI(Linux)、UI Automation(Windows)、
NSAccessibility(macOS)越しの完全なアクセシビリティ要素ツリー。
これはマルチプロセスブラウザが載る、描画と分離の土台だ。
今週その他
- purecrypto も
独自に百コミットのペースを保った(
v0.6.23→v0.6.25):新しい ハッシュ関数(Streebog、Whirlpool、MarsupilamiFourteen、MD2)、 ClientHello からのサーバ側 TLS 1.2/1.3 バージョン交渉、HTTP/3 の 証明書選択向け QUICpeek_initial_sni、Falcon ポスト量子署名の 堅牢化、OpenSSL 3.5 と相互運用する PQC PKCS#8。 - libwallet は広い
セキュリティ監査パスを取った(
0.4.68→0.4.70):RPC URL の SSRF ガード、名前のホモグラフガード、panic 回復と秘密ゼロ化付きの 堅牢化された FFI ライフサイクル、swap スリッページのクランプと execute tripwire、MEV 保護の opt-out。 - minlz-rs — pebbledb が依存する MinLZ コーデック — も独自の押し込みを得た。
- rsurl と puressh は、この 二週間の torrent と証明書の作業を進め続けた。
- OxideAV のコーデックごとの スイープは音声/動画/コンテナのクレート全体で続いた (mpeg4video、vorbis、mp4、mov、vp9、…)。
- azusa-kernel — AzusaOS のカーネルリポジトリが、先週の 5fs ファイルシステムと並んで 現れた。
来週
kataan は test262 の残り数パーセントを詰め続ける。pebbledb は 完全な Pebble パリティに達する。httpsd と rsurl は Pure-Rust HTTP スタック上の対になるクライアント/サーバになる。usbmagic は ハードウェアと話せるようになった今、USB スタックを登り続ける。