週次オープンソース:kataan が 99.9%、ブラウザの MPC ウォレット、そして Coldcard 向け Rust ファームウェア
量としては静かな週で、約 600 コミット。その大半は新しく始めるより 仕上げる方に向かった。JavaScript エンジンは test262 の残りの差を ほぼ詰め、その下の国際化クレートはそれに追いつくためにほぼ毎日 リリースを出した。ウォレットライブラリはマルチパーティの ウォレットをブラウザへ移した。そして週の最終日に新しい プロジェクトが始まった:Coldcard ハードウェアウォレット向けの 独立したファームウェア、catcard だ。
kataan:99.4% から 99.93% へ
Pure-Rust の JavaScript エンジン kataan(73 コミット)は、 README の test262 通過率 99.4%(51,890 中 51,565)から週を始めた。 日曜にコミットされた数字は 99.93%:51,856 通過、既知の失敗 34。 各コミットのタイトルに直したテスト数が付いているので、台帳は追い やすい:
- 仕様が求めるところに本物の並行性。
Atomicsが本物の マルチエージェント実行で動くようになり、built-ins/Atomicsは すべて緑になった。モジュール評価は本当に非同期になり、deferred import は自分の非同期依存を評価する。GC も、上限付きの セーフポイントで実行中に回収できるようになった。 - Intl と Temporal。 CLDR の単位、カレンダーフィールド、
hour cycle、ロケール交渉、
formatRange、そして Temporal 向けの 天文学的な中国暦/檀紀暦。ペルシャ暦は 33 年周期の算術規則に 移り、イスラム暦の閏日項はエポック以前の年について直された。 - 正規表現。 Unicode 17 のプロパティテーブル、絵文字の文字列
プロパティ、仕様どおりの
\s。一連の性能コミットで、グローバル な match/replace/split も対象文字列の長さに対して線形になった。 - 二次から線形へ。 文字列の
+=の繰り返し、反復ごとのlet環境、Map/Setの検索(いまはハッシュ索引)はどれも二次 だったので、それぞれ専用のコミットで直した。
エンジンは v0.0.8 をタグ付けし、ドキュメントとプレイグラウンドが
GitHub Pages で公開された。
intl:エンジンを支える七つのリリース
Pure-Rust で no_std の ICU 相当
intl(42 コミット)は、
一週間で 0.5.2 から 0.6.1 まで進んだ。kataan は修正を取り込む
ために依存を何度も上げた(「intl 0.6.0 — all nine list
combinations, locale separators (+14)」)。作業は CLDR 48 に
基づく ECMA-402 の網羅だった:
- CLDR メタゾーンからのローカライズされたタイムゾーン名。 ゾーン名の結合器と、フィールド単位のカレンダー API でのホスト DST も;
- リストと相対時間フォーマットの ECMA-402 面すべて;
- 数値フォーマット:ロケールの NaN/無限大、記数法ごとの記号、
範囲、仕様どおりの丸めの既定値、ロケールの
minimumGroupingDigits; - 単位:narrow 幅と複合単位、ECMA-402 の全セット;
- 照合:CLDR 48 のテーラリングを再取り込みし、
-u-co-による 名前付き照合と UTS #10 の case level。
一つの層が別の層を動かす分かりやすい例だ:kataan の Intl 組み込みはこのクレートの上に乗っているので、エンジンの適合性 修正の多くは実際にはこちらに入る。
libwallet:MPC ウォレットがブラウザへ
閾値署名(TSS)対応のマルチチェーンウォレットライブラリ libwallet (37 コミット)は、閾値署名ウォレットを Web ビルドへ持ち込む一週間 だった。段階はコミットに番号付きで残っている:
- Stage 1: パスキー MPC ウォレット。委員会は [passkey, password, RemoteKey]。端末のシェアは WebAuthn PRF の パスキーから得る。
- Stage 2: ウォレットがリロードをまたいで保存・ロック解除 される。
- Stage 3a/3b: secp256k1 + ed25519 の鍵ペアを作るマルチ チェーンのウォレットが、ダッシュボードの Accounts 画面を動かす。
下の層では、分散 FROST の鍵生成と署名が spotlib の非同期
セレモニーでブラウザ内で動くようになった。チェーン RPC は
rsurl::aio で非同期になり、Account:signAndSendTransaction は
EVM・Solana・Bitcoin のすべてで、ネイティブでも wasm でも同じ形に
なった。ed25519 のアカウントには非ハード化 HD 導出と tweak した
FROST 署名が入り、往復で検証済み。Web 側では、残高照会も送金も
もうクライアント側のチェーン RPC を通らない。
catcard:Coldcard 向けのクリーンルーム Rust ファームウェア
catcard は日曜に
始まった:「Coldcard ハードウェア向けの、独立したオープンソースの
ファームウェア、Rust でゼロから書いたもの」。Cortex-M4F 上の
no_std で、ライセンスは MIT。README は理由を二つ挙げる。
一つ目はエントロピーだ:純正ファームウェアは BIP-39 シードを、
チップのハードウェア TRNG ではなく連鎖した二つのソフトウェア PRNG
から導いており、実エントロピーは mk3 で約 22 ビット、mk4 で約 32
ビットしかない、と README は述べる。だからエントロピー部が最初に
作られた。二つ目はライセンスだ:元のファームウェアは MIT に
Commons Clause を加えたもので、これはオープンソースではない。
MIT 単独にするには、そのソースから本当に独立している必要がある。
初日のスキャフォールドは、どこまでできているかを正直に書いている。 あるのはビルドシステム、イメージ形式、純正ブートローダが受け入れる DfuSe イメージを作る署名パイプライン、そしてボード上のあらゆる ノイズ源から作るエントロピープール。ウォレット機能はまだない。 同じ日の他のコミットでは、ブートローダが公開するテーブルから callgate のエントリポイントを見つけるようにした(ブートローダの バージョンごとに位置が変わるので、決してハードコードしない)。 Q1 のキーボード、SE2、NFC のピンも割り当てた。
OxideAV:刺繍、FBX、そして大型のビデオデコーダ
週の量の大半はメディアフレームワークで、何十ものクレートに分散 していた。目立ったのは三つ:
- oxideav-embroidery
は新規(2026-07-30 作成)。ミシン刺繍のデザイン形式を扱う:
Tajima DST、Brother PEC/PES/PHC、
.inf付きの Melco EXP、 Janome JEF。どれも一つの型付きステッチデザインモデルに デコードされ、ほとんどはエンコードもできる。ベストエフォートの PHX と、自前で合成したデザインに対するフォーマット間一致の オラクルもある。 - oxideav-fbx は、 デコード時にノード変換チェーンを完全に合成し、エンコード時には それを組み立て直し、末尾のバイナリフッタもデコードするように なった。本物の v7400 フィクスチャがバイト単位で再エンコード できる。
- oxideav-av1 と oxideav-h266 は エンコーダの作業を続けた。AV1 にはマルチタイルの書き込み側、 空間スケーラビリティのレイヤ、セグメント化したループ リストレーションが入り、適合性コーパスは 122 ストリームで固定 された。H.266 には両側のパレット符号化と、外部基準で 136/136 バイト一致のマルチスライスピクチャが入った。JVET 適合性 ストリーム用のデコードドライバもでき、その 56 本すべてが スライスヘッダをきれいにパースする。
今週その他
- fullrust は、 手を加えていない Rust クレートを静的で libc なしの Linux バイナリにビルドする。ツールチェーンのオーバーレイを Rust 1.89 に移植し、コンテナイメージは CI でビルドされ、proc-macro クレートのビルドでエンドツーエンドに検証されるようになった。
- zanolib(Zano の
オフライントランザクション署名)は Rust へ丸ごと移植された。
Go 版とバイト単位で互換で、Go 版はその後削除された。
0.2.0としてリリース。閾値ビューキーはいまは tsslib の key-image セレモニーで導く。 - teamclaude
1.1.10〜1.1.11:TC_ACCTで、MITM モードでもセッションを 一つのアカウントに固定できる。401 が続いても、エラーのたびに トークンファミリーをローテートすることはなくなった。 - oxideav-h263 は Annex K のスライス符号化と並んで RFC 4629 と RFC 2190 の RTP パケット化を追加した。oxideav-otf はスクリプト単位に分けたシェーピングと、OpenType の スクリプト/言語/ベースラインのタグレジストリを追加した。
来週
kataan は最後の数十件の失敗に取り組み続け、intl はエンジンが 必要とするものを追い続ける。catcard はスキャフォールドから実際の ファームウェアへ進む。まずはディスプレイ、キーパッド、そして ウォレットに必要な Bitcoin のプリミティブだ。libwallet の ブラウザウォレットは日常的に使える形に落ち着いていくはずで、 OxideAV のエンコーダも埋まり続ける。