2026-06-14

週次オープンソース:rsurl が BitTorrent を生やし、puressh がセキュリティパス

Pure-Rust スタックの固めの週だ。この二週間で公開された部品が 牙を生やした。rsurl は BitTorrent エンジンとレジューム転送を 獲得し、puressh は厳しいセキュリティパス(認証前のクリティカル 修正を含む)を経て、compcol は高速化して QPACK を生やし、fstool はファイルシステム横断のメタデータを覚えた。Go ライブラリが さらに二つ Rust 移植として到着し、AzusaOS 向けの新しいファイル システムが着地した。

rsurl:curl の先、BitTorrent へ

rsurl は先週 curl パリティに達した。今週はその先へ行った(v0.0.6v0.0.9)。 見出しは本格的な BitTorrent エンジンだ:並行スウォーム ダウンローダ、BEP 9 / BEP 10 越しの magnet メタデータ、DHT ピア発見(BEP 5)、エンドゲームモード、--seed/--share-ratio での受信シーディング、レジューム時に再ハッシュする --recheck-v でのピアごとの診断。curl は torrent を扱わない——これは rsurl が同じクライアントの背骨を、curl が一度も覆わなかった プロトコルに使っている。

並んで、ダウンロードがレジューム可能になった:共有の部分ファイル 形式、単一ストリームのレジューム(-C -)、レジューム可能な 並列セグメント(-C - --parallel-segments)。HTTP 経路も HTTP/2 PRIORITY の重み付け(ランタイムのプールサイズ調整付き)、 h2/h3/プール HTTPS での TlsInfo +フェーズごとのタイミング、 呼び出し側所有の証明書検証フック、SameSite/CHIPS の cookie サーフェスを得た。

puressh:一つのクリティカル修正、そして広いパス

puresshv0.0.5)は 今週をセキュリティに費やし、一つはクリティカルだった:認証前の デコードが pad_len > packet_length を受け入れていた——認証前に リモートから引ける DoS。これを修正し、加えて rekey ストーム ガード(エポック相対のシーケンス基準、バイトカウンタのリセット)、 認証済みシェルの stdout バックログ上限(メモリ DoS)、繰り延べ rekey キューの上限も入れた。

残りは積み上がる種類の堅牢化だ:すべてのセッション型を権限ドロップ 前に root で PAM 経由にゲート、導出セッション鍵/HMAC 完全性鍵/ 平文パスワードを drop 時にゼロ化、ステートフルな AEAD/CTR 暗号 から Clone を除去(nonce 再利用の堅牢化)、ML-KEM ハイブリッド 共有秘密を交換ハッシュ向けに mpint ではなく SSH string として エンコード、known_hosts を行ごとにパースして不正な UTF-8 1 バイトでストアが空にならないように、サーバ供給の SFTP/SCP 名を TTY に出す前にサニタイズ。FFI 層も全面的に bytes-path バリアントを得て、非 UTF-8 のリモートパスが往復する。

compcol:高速化、そして QPACK と LZFSE v2

compcolv0.6.2)は 広いスループットパスを取り、コーデックを追加した。速度面: LZ 系のデコードループ全体(lz4/lz5/lzo/snappy、RAR 1/2/3/5、 LHA、zip implode/reduce/shrink)でのバルク match-copy、bzip2 BWT のインプレース SA-IS 再帰、zstd の内側ループ削り(FSE ロード共有、 テーブル巻き上げ、Huffman リテラル高速化)、Brotli の Huffman ファストパス LUT 拡幅(9 → 11 ビット)。

新形式:本物の生 LZMA2 エンコーダ(スタブを置き換え)、 一般 FSE テーブル構築付きの LZFSE bvx2(v2)ブロックデコーダ、 そして QPACK(RFC 9204)実装と、その土台となる単体の Huffman / レンジコーダ / MTF / BWT 部品——rsurl の HTTP/3 が 必要とするヘッダコーデックだ。

fstool:ファイルシステム横断のメタデータ

fstoolv0.4.15v0.4.17)はメタデータをファイルシステム行列をまたいで持ち運べる ようにした。set_attrs が FAT32、exFAT、NTFS、XFS、HFS+ で実装 され(各々が chmod/chown/utimes を形式が実際に扱える範囲に写す ——例えば exFAT の唯一の READ-ONLY ビット)、シェルや repack 越しのファイルシステム横断 chmod/chown が一様に効く。さらに FAT/exFAT/HFS+ でファイルごとの更新時刻の保存と露出を始め (シンボリックリンクやデバイスノードでも)、自前のセキュリティ パスも取った——ISO 9660 / GRF / DMG で不正イメージ上の攻撃者 制御の確保を上限化、GPT のチェック付き LBA 演算、repack/merge 経路での .. 除去。

outscript + spotlib:さらに二つの Go 移植

確立された Go ライブラリが二つ、Pure-Rust 移植として到着した。 いずれも purecrypto の上に:

outscriptoutscript の移植)は 出力スクリプト生成、アドレスのパース/エンコード、ネットワーク 横断のトランザクション構築/署名を行う:Bitcoin ファミリー (p2pkh から p2tr taproot まで、加えて BCH CashAddr、Litecoin、 Dogecoin、Namecoin)、ABI エンコード付きの EVM トランザクション、 Solana(トランザクション、命令、PDA)、その上にブロック報酬の 計算。

spotlibspotlibspotproto の移植、 ワイヤ互換)は Spot セキュアメッセージングプロトコルを実装 する——リレーサーバ越しに端から端まで暗号化されたメッセージを ルーティングし、リレーは常に暗号文しか見ない、鍵ベースの k.<hash> アドレス宛て。ワークスペースは spotproto(ワイヤ 形式)と spotlib(クライアント)に分かれ、async ランタイム なしで動く。

5fs:AzusaOS 向けのファイルシステム

5fs——「5OS FileSystem」、 「go-F-S」と読む(5 は日本語の 、5 秒で起動する Go-OS に ちなむ)——は二つの発想を中心にした新しいファイルシステムだ: ファイルシステムは移動・リサイズ可能なオブジェクトである (ブロックと inode のアドレスはアロケーショングループ相対の 仮想アドレスなので、データを移してもメタデータを書き換えない)、 そしてあらゆるレベル——デバイスマップ、アロケータ、エクステント、 ディレクトリ——で適応的メッシュ細分化(AMR)を単一の構造原理に する。2015 年からの当初の目標も保つ:カーネルはスーパーブロックに 記録されたオフセットの物理的に連続したブロックに置かれ、 ブートローダがファイルシステムドライバなしで raw ブロック読み でロードできる。今週は v2 実装全体(ジャーナリング、細分化 アロケータ、エクステントツリー、ハッシュ化ディレクトリ、オンライン のリサイズ/再配置)、mkfs/fsck/debugfs ツール付きの gofs Rust ライブラリ、読み書き FUSE マウント、モデルベース+クラッシュ 回復+ストレステストスイートが着地した。2015 年の C++ プロト タイプは削除された。

OxideAV:Blu-ray へ向けて

フレームワークの光ディスク経路が W21 の DVD リーダの周りで 埋まった:oxideav-aacs (クリーンルームの AACS 復号——MKB / Unit_Key_RO パース、 Subset-Difference ツリーウォーク、VUK 導出、Title Key 展開)と oxideav-mpegts (Blu-ray の .m2ts バイトを取り込むために作られた MPEG-TS デマクサ)が、Blu-ray remux に必要な二つだ。今週の他の新顔: oxideav-riff(WAV と AVI の下の RIFF チャンクウォーカー)と oxideav-ifc(STEP physical-file パーサ経由の IFC / ISO 16739 BIM リーダ——建築 モデル、コーデックから遠く離れて)。

来週

rsurl は torrent エンジンとレジューム形式を固める。puressh は findings を閉じ続ける。compcol の QPACK は rsurl の HTTP/3 に 還流する。5fs は繰り延べ機能(L3 inode スロット、truncate 回収、カーネルブート領域)を育てる。