Bun v1.4.4リリース、Prettier互換の高速フォーマッタ「bun fmt」と型チェッカーの大幅高速化を実現

概要 JavaScript/TypeScriptランタイムのBunは10月22日、v1.4.4をリリースした。今回の目玉は新コマンドbun fmtで、Prettierの設定ファイル(.prettierrcやprettier.config.*など)やoxfmt形式の設定をそのまま読み込める互換フォーマッタとして実装された。JavaScript、TypeScript、JSX、CSS、HTML、Vue、Svelte、JSON、YAML、Markdown、GraphQLなど幅広い言語に対応し、インポートの並び替えやTailwind CSSのクラス順序の整理も別プラグインなしで組み込みで行える。Prettier自身のリポジトリ(2,616ファイル)を対象にした計測では、Prettier 3.9.10が17.1秒かかる処理をbun fmtは59.7ミリ秒で完了し、286倍の速度を記録した。Prettierの9,731件のテストケースに対する互換性も99.1%に達しているという。Git連携用にbun fmt --check、bun fmt --staged、bun fmt --changedといったオプションも用意されている。 型チェッカーとパッケージ管理の強化 組み込み型チェッカーbun checkも大幅に高速化された。大規模プロジェクトで1.4〜7.8倍の速度向上が確認されており、MUIのドキュメントサイトでは検証時間が10.28秒から1.31秒に短縮、ピークメモリ使用量も11.2GBから1.3GBへ大幅に削減されている。複数プロジェクトを扱うbun check -bでは、パース結果の共有により最大15.7倍の高速化を実現したとしている。 パッケージ管理の面では、Yarn 2以降(Yarn Berry)のロックファイルをbun.lock形式に変換するマイグレーション機能が追加された。バージョン固定やワークスペース構成、npm:エイリアス、resolutions、Git・tarball・file:依存、patch:依存(patchedDependenciesへの変換)まで保持される。加えて、インストール失敗時に50〜800msの間隔で指数バックオフ再試行を行う仕組みや、ウォームキャッシュ時にLinuxで最大3.2倍速くなる並列リンク処理(8スレッド)、pnpmに近い挙動となったピア依存解決ロジックなども導入された。新コマンドとして、node_modulesを作らずに依存関係だけを取得するbun pm fetch、キャッシュを管理するbun pm cache pack/unpack/prune、モノレポ全体を依存順に公開するbun publish --recursiveも追加されている。 データベース・WebSocket・ランタイムの改善 Bun.SQLはPostgreSQLでクエリあたりのCPU命令数を21〜48%削減し、MySQLでの一括挿入でも53%の命令数削減を実現した。PostgreSQLのクエリでは1回あたりのオブジェクト割り当ても84個から28個に減少している。機能面では、PostgreSQLのCOPYストリームのバックプレッシャー対応、SQL.camel・SQL.pascalなどのカラム名変換、JavaScript配列とPostgreSQL配列カラムの直接マッピングなどが加わった。SQLiteでもdb.function()やdb.aggregate()によるユーザー定義関数、db.onInsertなどの更新フックが利用可能になっている。 wsパッケージの互換性も改善され、npm版のwsテストスイート271件中234件が成功するようになった(従来は94件)。createWebSocketStream()のバックプレッシャー対応やSOCKSプロキシ経由の接続、ブラウザに合わせたクローズハンドシェイクの実装なども行われている。さらに、JavaScriptCoreエンジンにWebKitの最新コミット1,013件を取り込んだことで、toLocaleString()が10万回呼び出しで54倍高速化(1,341msから25msへ)し、100万要素の配列読み込みも4.2倍速くなった。開発体験の面では、Devサーバーのエラーオーバーレイがシステムのライト/ダークテーマに追従するよう再設計され、類似エラーのグルーピング表示にも対応している。

October 25, 2026

Cloudflare、TypeScriptコンパイラのRust移植「tsrs」を発表 最大8倍高速化、エージェントが開発を主導

概要 Cloudflareは10月20日、TypeScriptコンパイラをRustに移植したプロジェクト「tsrs」を発表した。VoidZeroおよびOwner.comのMax Schwenk氏、そしてTypeScriptチーム自身と協力して進められており、JavaScript向けコンパイラ・ツールチェーンである「Oxc」の一部として育成していく計画だ。ベンチマークでは、すでにリリース済みのTypeScript 7.0と比較して最大8倍の処理速度向上、メモリ使用量は約70%削減という結果が示されている。なお、この高速化の一部はすでにベータ版が公開されているTypeScript 7.1にも還元されており、同ベータ版はTypeScript 7.0と比較して最大2.5倍高速化しているという。TypeScriptチームと「同一条件での比較」を確認し合うなど、測定の信頼性にも配慮している。 フォークではなく忠実な移植を目指す方針 プロジェクトの最大の特徴は、“We are not forking TypeScript”(TypeScriptをフォークするものではない)と明言している点だ。言語仕様や設計の完全な統制権はあくまでTypeScriptチームが持つべきだという立場を取り、tsrsは独自路線を歩む新しい処理系ではなく、既存のTypeScriptに忠実な代替実装として位置づけられている。この方針には、言語の長期的なビジョンを損なわず、既存エコシステムとの互換性を保証する狙いがある。 RustとWebAssemblyを選んだ理由 実装言語にRustを選んだ背景には、WebAssembly対応への強いこだわりがある。Goのような言語はランタイムにガベージコレクタを同梱する必要があるのに対し、Rustのメモリ管理モデルはWebAssembleのゲストとホスト間で直接的なメモリ相互作用を実現でき、効率面で優位になるという。すでにNext.js互換レイヤー「Vinext」で培った知見も活用される見込みで、移植作業そのものの多くはAIエージェントによって担われたという点も注目される。 継続的なメンテナンス体制と今後の展開 tsrsはOxcの一部として継続的に保守される予定で、Vinextで実績のある運用モデルを踏襲する。具体的には、エージェントによる日次レビュー、アップストリーム(本家TypeScript)との差分取得、互換性マトリックスの自動再生成を組み合わせることで、本家との乖離を最小限に抑える体制を構築するとしている。今後はTheo Browne氏が手がける「tsc-rs」との統合、型を認識したルールのOxlintへの統合、さらには安全なサンドボックス環境内での開発ツールチェーン実行なども計画されており、Rust・WebAssemblyベースの高速なTypeScriptエコシステム構築に向けた取り組みが続く見通しだ。

October 24, 2026

PHP、緊急パッチからわずか2日後に新たな未修正RCEリスク(CVE-2026-115560)を公表

概要 PHP開発チームは10月23日、新たな未修正のリモートコード実行(RCE)リスク「CVE-2026-115560」を公表した。10月21日にCVE-2026-109618とCVE-2026-109619(通称「PHP2Shell」)の緊急パッチを公開してからわずか2日後の発表であり、PHPの深刻な脆弱性対応が立て続けに続く事態となっている。今回の問題は先の2件とは別系統の欠陥で、既に配布済みの緊急パッチでは対応されていない。修正版はまだ提供されておらず、通常の定期バグ修正リリースに向けて作業が進められる見通しだ。 脆弱性の技術的な詳細 CVE-2026-115560が発生するには、PHP開発チームの説明によれば以下の3条件がすべて満たされる必要がある。すなわち、session.serialize_handlerをphp_binaryまたはphp_serializeに設定していること、実行中にini_set()を用いてこの設定値をphpに変更していること、そしてその変更がsession_start()より前に行われていることである。これに加えて、セッションのアップロードプログレス機能が有効化されている状態が必須条件となる。PHP自身はこの組み合わせの構成を「実務上あり得ない」と評価しており、一般的なリスクとしては低いとの見立てを示している。 PHP2Shellとの関係と対応策 今回の脆弱性は、10月21日にパッチが公開されたPHP2Shell関連のCVE-2026-109618・CVE-2026-109619とは独立した問題であり、両者の修正が今回のリスクをカバーするものではない点に注意が必要だ。PHP開発チームが示す暫定的な回避策は、session.upload_progress.enabled=0への設定変更であり、これは前回のPHP2Shell対応で案内されていた緩和策と同一のものである。現時点でCVE-2026-115560の悪用報告は確認されておらず、観測されている攻撃はいずれも10月21日にパッチ済みの2件を狙ったものにとどまる。 今後の見通し PHPはどのバージョンが影響を受けるか、またどのリリースで修正が取り込まれるかについて、現時点で詳細を公表していない。緊急リリースとしてではなく通常のリリースサイクルの中で対応される見通しであることから、管理者はまずsession.upload_progress.enabled=0の設定による暫定対応を優先し、定期リリースでの修正適用を待つことになる。PHP2Shell関連の対応に追われていた管理者にとっては、立て続けの注意喚起となるため、session関連の設定を含めた構成全体の見直しが推奨される。

October 24, 2026

インドの認証局eMudhraで中間証明書の秘密鍵が脆弱に生成、Mozilla・Google・Appleが緊急遮断

概要 インドの認証局eMudhra(emSign)が発行した8枚の中間証明書について、2025年4月の鍵生成儀式に不備があり、秘密鍵が極めて脆弱な値になっていたことが発覚した。研究者の"Wayne"が10月17日に公開された証明書データをスキャンしてこの問題を発見し、別の研究者"Flüpke"が実際に復元した秘密鍵をGitHub上で概念実証として公開した。これを受けてMozillaとGoogleは発覚当日の10月17日に、Appleは10月22日に対応に動き、Go言語とPythonも最新リリースで該当証明書を強制的に信頼しないよう修正した。問題はCVE-2026-111943として追跡されている。 何が起きたのか eMudhraの説明によると、問題のP-384秘密鍵は2025年4月の鍵生成時にスクリプトの誤りによって生成された弱い鍵セットで、本来生成されるべき正規の鍵と似たラベルが付けられていたために誤って証明書署名用に選択されてしまったという。生成された鍵の値は256より小さいものもあり、中には4という極端に小さい値まで存在した。この場合、攻撃者はわずか256通りの数値を試すだけで秘密鍵を復元できる計算になる。鍵が生成された2025年4月以降、理論上は攻撃者がこの弱さを悪用できる状態が1年半近く続いていたことになる。 eMudhra自身は「影響を受けた中間証明書の大半は本番環境で使用されていなかった」とし、「エンドユーザー向け証明書の発行に使用された証拠はない」と説明しているが、脆弱な鍵が存在していた期間の長さを踏まえると、影響範囲の完全な否定にはなっていない。 ブラウザ・プラットフォーム各社の対応 発覚当日の10月17日、MozillaはFirefoxのOneCRL機構を通じて該当証明書を即座にブロックし、10月20日にはFirefox 158.0.1をリリースしてこの対応を正式に組み込んだ。Google Chromeも同日中に6枚の該当中間証明書をブロックした。Appleは10月22日に保護機能を追加し、主要3ブラウザベンダーが揃って緊急対応を完了させた形となる。 言語・ランタイム側の追従 ブラウザだけでなく、プログラミング言語のランタイムレベルでも対応が進んだ。Go言語チームは10月19日にGo 1.27.3および1.26.10をリリースし、crypto/x509パッケージのVerifyが該当する中間証明書を含む証明書チェーンを検証時にフィルタリングし、呼び出し元に返さないよう修正した。この修正はGo Issue 82345として管理されており、即座のアップグレードが推奨されている。 Pythonも10月21日に3.15.1、3.14.9を「expedited security release(緊急セキュリティリリース)」として、3.13.17を「special security release(特別セキュリティリリース)」として公開した。いずれのバージョンでも同梱のpipを26.2.2に更新し、eMudhra/emSign CA証明書の問題に対応したcertifi 2026.10.19を含める形で対処している。通常、3.13のようにセキュリティ修正のみの保守フェーズに入ったバージョンではpipの更新は行わないが、今回は3.13が保守フェーズ(security-only mode)に入ったばかりだったことから、インストーラーを含む特別リリースに踏み切ったという。 今後の見通し 今回の事案は、認証局の鍵生成プロセス自体に起因する脆弱性が、ブラウザだけでなく各種言語のランタイムやライブラリにまで対応を要求する典型例となった。Mozillaのセキュリティ技術者Dennis Jacksonが追跡用サイトを設けて影響を受けるシステムと対応状況を公開しており、他の言語・フレームワークでも同様の追従修正が今後続く可能性がある。認証局の鍵生成儀式における検証体制の見直しが、業界全体の課題として改めて浮上した。

October 23, 2026

PHPコアに未修正RCE脆弱性2件が流出、攻撃ツール「PHP2Shell」出現で緊急パッチ前倒し公開

概要 PHPコアに未認証のリモートコード実行(RCE)を許す重大な脆弱性2件、CVE-2026-109618とCVE-2026-109619が見つかった。PHP開発チームはCVSS v4.0で9.2のスコアを割り当てているが、情報流出の過程ではセキュリティ研究者watchTowrが当初10.0相当として報じており、評価にばらつきが見られる。当初は10月22日午前11時(米東部時間)に修正版の公開が予定されていたが、脆弱性情報と攻撃ツールの流出を受けて10月21日14:00 UTC(米東部時間10:00AM)に前倒しされた。公式にパッチが提供されるのはサポート対象の8.5、8.4、8.3、8.2系列のみで、EOL(サポート終了)となっている8.1以前のバージョンにはベンダー提供の修正がない。一方でBleepingComputerはPHP 5、6、7、8の広い範囲に影響が及ぶ可能性があると報じており、Shodan調査では現在もPHP 8.1以前を稼働させる外部公開ホストが約88万4千台存在するとMalloryが指摘している。パッチ適用自体が不可能な環境が大量に残る点が、今回の問題を一段と深刻にしている。 流出の経緯と攻撃ツール「PHP2Shell」 事態が急転したのは10月20日、Hacker News上に脆弱性の詳細とされる情報が投稿されたことだった。この投稿では、Calif.IOという名義の開発者によるものとされるエクスプロイトツール「PHP2Shell」のスクリーンショットも、セキュリティアドバイザリーと共に流出したという。PHP開発チームはこれを受けて同日19:33 UTCに緊急の注意喚起を発表し、「いずれかの脆弱性の詳細が公になった場合、あるいは実際の悪用の証拠が確認された場合には、より早期にリリースする権利を留保する」との趣旨の声明を出していた。脆弱性自体の技術的な仕組みについては、記事執筆時点でPHP側から具体的な説明は公開されておらず、watchTowr関連の資料でも「リモートコード実行を許す」という点以外の詳細は明らかになっていない。研究機関sansecは、MagentoやShopware、WooCommerceといった主要なECプラットフォームもPHP上で広く稼働しているため、今回の脆弱性の影響を受けると指摘している。 対応に追われる管理者とリスク評価 脆弱性情報の信頼性については議論が残っており、thehackernewsはリークの出典について「“ソースは信じてくれ”以上の確証がない」と評価の難しさを指摘している。それでもセキュリティベンダーの反応は速く、Huntressは10月20日時点で自社パートナー環境における悪用例や、概念実証(PoC)コード・公開エクスプロイトの存在は確認されていないと報告した一方、watchTowrはCVE-2026-109618の再現に成功したとしており、脆弱性自体の実在性は裏付けられている。sansecはさらに、PHPの修正版公開から「15分以内に大規模な攻撃が始まる」と予想している。なお、thehackernewsは、2024年に発覚したWindows版PHP CGIモードの脆弱性CVE-2024-4577が公開から24時間以内にAkamaiのハニーポットへの攻撃を観測された前例を挙げ、警戒を呼びかけている。各社が推奨する対応は共通して、まず社内のPHP稼働環境を棚卸しし、パッチを即時適用できる体制を整えること、EOLブランチが稼働するシステムは隔離するかVPN経由のみでアクセス可能にすること、CERT-EUが提言するようにインターネットからの直接アクセス遮断も検討すること、php-fpmやApacheのプロセスを監視し侵害の兆候があれば直ちにサーバーを隔離して証拠を保全することなどが挙げられている。緊急の緩和策としては、php.iniでsession.upload_progress.enabledを無効化するといった設定変更も提案されており、パッチ適用までの時間を少しでも稼ぐ動きが広がっている。

October 21, 2026

TypeScript 7.1ベータ公開、Go移植コンパイラでmui-docsのビルドが1.9倍高速化

概要 Microsoftは10月20日、TypeScriptの次期バージョン7.1のベータ版を公開した。TypeScript 7系はGo言語で書き直されたネイティブコンパイラ基盤への移行を進めているバージョン系列で、7.0時点で従来のJavaScript実装比で約10倍の性能向上を実現していたが、7.1ではそこからさらなる最適化を積み重ねている。実測値として、blueskyのビルドでは4.48秒から3.89秒(約1.2倍、13.2%削減)、mui-docsでは22.2秒から11.9秒(約1.9倍、46.6%削減)への短縮が示されており、mui-docsのメモリ使用量も8,093 MiBから4,079 MiBへと49.6%削減されたという。これらの改善は数十件に及ぶ最適化の積み重ねによるもので、プロジェクトによって改善度には差がある。 新しいプログラマティックAPIとフレームワーク連携 7.1では、コンパイラをプログラムから利用するための新しいモジュール型エントリポイントが整理された。同期的に動作するtypescript/sync、Promiseベースのtypescript/async、ファイルシステム操作を扱うtypescript/fs、構文木を直接操作するtypescript/astといった用途別のモジュールが用意され、ツール開発者が必要な機能だけを選んで組み込めるようになっている。さらに「Content Mappers」という機能により、Vue・Svelte・Astroといった単一ファイルコンポーネント形式のフレームワークでの型チェックがコンパイラ側でより深く統合された。これまでこうしたフレームワークの型チェックは言語サーバー向けのプラグインに頼る部分が大きかったが、コンパイラ自体がソースマッピングを扱えることで、エディタ上の診断やビルド時チェックの一貫性が向上すると期待される。 言語機能とES2026ターゲット 言語仕様の面では、アンビエントモジュール宣言でインポート属性(import attributes)をサポートし、CSSやテキストファイルなどを読み込む際の型定義の精度が改善された。また、ECMAScriptの提案段階にある「Source Phase Imports」を実装し、WebAssemblyモジュールを事前にロードして制御する新しい構文に対応している。ビルドターゲットとしては安定版のES2026サポートが加わり、Math.sumPrecise()やIterator.concat()などのイテレータ操作、JSON.rawJSON()を含むJSONパースの拡張、Map/WeakMapへのgetOrInsert()、Base64・Hex変換関数といった新しい標準ビルトインをターゲットコードで直接利用できるようになる。 破壊的変更と今後の見通し 一方で、条件型における型パラメータの分配(distributive conditional types)に関する検証が厳格化され、一部の既存コードでは型エラーの修正が必要になる可能性がある点は注意が必要だ。リリーススケジュールとしては、今回のベータ版公開から約1か月後にリリース候補(RC)版を公開し、その後に正式版をリリースする計画が示されている。Go移植によるコンパイラの高速化は7.0での大幅な性能向上に続く形で段階的に進んでおり、今後のRC版・正式版でもビルド時間とメモリ使用量の改善が継続的に図られるとみられる。

October 21, 2026

Cloudflare傘下のVite+が1.0到達、GitLab CI対応とtsup移行パスで本番運用へ準備完了

概要 Vite作成者のEvan Youが創設したVoidZeroが開発する統合JavaScriptツールチェーン「Vite+」が、正式版1.0に到達した。VoidZeroはCloudflareに買収されており、Vite+はその傘下でMITライセンスのもと開発が継続されている。単一のvpコマンドからNode.js本体、パッケージマネージャー、Vite 8、Vitest、Oxlint、Oxfmt、Rolldown、tsdownといった複数のツールを一元管理できる点が特徴で、プレビュー版から本番運用に向けた機能拡充を経て今回の安定版リリースに至った。 1.0での新機能 今回の1.0では、CI/CD環境への対応が大きく拡張された。GitLab CI/CD向けにsetup-vpアクションが新たに利用可能になり、GitHub Actionsに限らず主要なCIパイプラインに組み込めるようになった。配布面でもHomebrewとDockerイメージが追加され、導入のハードルが下がっている。 既存プロジェクトからの移行を助けるvp migrateコマンドは、tsupプロジェクトへの対応を追加した。実行前に変更内容をプレビュー表示する仕組みも備えており、ビルド設定を壊さずに段階的な移行を進められる。診断系のサブコマンドも充実し、vp toolchainで各ツールの正確なバージョンを確認でき、vp env doctorはランタイムの解決過程を詳細に説明する。さらにvp hooksによってGitフックの管理もvpから一元的に行えるようになった。パフォーマンス面では、OxcのネイティブReact Compiler対応により、従来のBabelプラグイン経由の処理に比べて最大10倍の高速化が実現されたという。 採用状況と評価 Tiptap、Dify、Hono、BlockNoteといったプロジェクトが既にVite+を採用しており、月間ダウンロード数は約200万件、2,600以上のGitHubリポジトリが依存するまでに広がっている。開発者コミュニティからは、Pythonのパッケージマネージャーかつツールチェーンであるuvに相当するJavaScript版という評価が出ており、複数の開発ツールを個別にインストール・管理する煩雑さを解消する存在として受け止められている。一方で、ファイルシステム階層の複雑さや、Vite本体の頻繁なメジャーバージョンアップへの追従が課題として指摘されている。 今後の展望 VoidZeroはリモートキャッシングやモノレポ向け診断機能の強化を今後の計画として挙げており、リリース作業を支援するvp releaseやドキュメント生成を担うvp docsコマンドの追加も予定している。Cloudflareの支援を受けたことで開発体制が強化された形であり、JavaScript/TypeScriptのビルドツールチェーンの標準化がさらに進むかどうか、今後のロードマップの実行が注目される。

October 20, 2026

Microsoft、rustup風の.NETツールチェーン管理ツール「dotnetup」をプレビュー公開

概要 Microsoftは10月15日、.NET SDKおよびランタイムのインストールと管理を行う新ツール「dotnetup」のパブリックプレビューを公開した。Rust向けの「rustup」やNode.js向けの「nvm」に着想を得たツールチェーンマネージャーで、管理者権限を必要とせずユーザーディレクトリ内に複数バージョンの.NETを並行してインストール・切り替えできる点が特徴だ。現時点ではmacOSとLinuxに対応しており、Windowsのシステムレベルインストール管理は今後の対応となる。 従来、.NET環境の構築にはシステムのパッケージマネージャー、tarball展開、インストールスクリプト(dotnet-install.sh)など複数の手段が併存しており、権限まわりの制約やインストール済みファイルの散在が課題となっていた。dotnetupはこれらを単一のクロスプラットフォームCLIに統合し、OSを問わず共通の操作体験を提供することを目指している。 主な機能とインストール方法 dotnetupはmacOSではZsh経由でcurl -fsSL https://aka.ms/dotnetup/get-dotnetup.sh | zsh、Linuxでは同スクリプトをbashで実行、Windowsではirm https://aka.ms/dotnetup/get-dotnetup.ps1 | iexというPowerShellコマンドでそれぞれ導入し、dotnetup initで初期化する。導入後はdotnetup listでインストール済みのSDK・ランタイムを一覧表示し、dotnetup updateで追跡中のチャネルを最新版に更新できるほか、dotnetup sdk install previewやdotnetup runtime install dailyのようにプレビュー版や日次ビルドを個別に指定してインストールすることも可能だ。ツール自体のアップデートはdotnetup self updateで行う。 メジャーバージョン単位での追跡による自動更新や、プロジェクトのglobal.jsonで指定されたSDKバージョンを尊重する機能も備える。既存のdotnet-install.shと比べると、インストール済みSDK/ランタイムの管理機能に加えて署名・チェックサムによる検証、複数バージョンをまとめて導入する際の高速化など、単なる導入スクリプトではなくツールチェーン全体を管理するマネージャーとしての性格が強い。管理者権限なしでノンインタラクティブに実行できるため、コンテナ化されたCI/CDワーカーでの利用にも適している。 今後の展望 現在のプレビュー版はmacOSとLinuxが対象で、Windowsにおけるシステムレベルのインストール管理(管理者権限を用いたインストール)は今後のロードマップに位置付けられている。Microsoftは今後、GitHub ActionsやAzure DevOpsとの統合、ユーザー体験の改善、さらにAIエージェントとの連携強化も計画していると述べている。詳細な利用方法はMicrosoft Learnの公式ドキュメントで、フィードバックはGitHubの「dotnet/sdk」discussionsで受け付けている。rustupやnvmが各言語エコシステムで標準的なツールとして定着した経緯を踏まえると、dotnetupが.NET開発者の環境構築体験をどこまで簡素化できるか、プレビュー期間中の反応が注目される。

October 20, 2026

SQLite本体にベクトル検索拡張「vec1」が統合、外部依存なしで近似最近傍探索が可能に

概要 SQLiteのソースツリーに、公式のベクトル検索拡張「vec1」が統合された。2026年9月30日にext/vec1/ディレクトリが追加され、以来1月から進められてきた開発がSQLite本体のコードベースに合流した形になる。実装はvec1.c単体でおよそ1万3千行、加えて50ファイル・約6,700行のテストが付属するという大規模なものだ。これまでベクトル検索を使うにはAlex Garcia氏によるサードパーティ拡張「sqlite-vec」などを別途導入するのが定番だったが、vec1はSQLite開発チーム自身の手で書かれ本体ツリーに取り込まれた初めての公式実装であり、組み込みDBとしてのSQLiteの使われ方を大きく広げる可能性を持つ。 技術的な詳細 vec1は仮想テーブル機構を通じてベクトル検索機能を提供する。テーブルの作成とインデックス構築は次のように行う。 CREATE VIRTUAL TABLE v USING vec1; INSERT INTO v(cmd, vector) VALUES ('rebuild', '{index:"flat", distance:"l2"}'); INSERT INTO v(rowid, vector) VALUES (1, vec1_from_json('[0,0,0,0]')); SELECT rowid, distance FROM v(vec1_from_json('[0.9,1,1.1,1]'), '{K:2}'); 距離計算はL2(ユークリッド距離)とコサイン距離に対応する。近似最近傍探索のアルゴリズムにはIVFADCを採用し、事前にk-meansでベクトルをバケットに分割しておき、検索時には近そうなバケットだけを確認することで計算量を削減する。さらにOPQという量子化手法でベクトルを回転させてから小さなコードへ圧縮し、メモリ使用量と計算コストを大幅に抑えている。性能面ではx86向けにAVX2、ARM向けにNEONを使ったSIMD化が施され、実行環境に応じて動的に最適な実装へ切り替わるため、AVX2非対応のCPUでも問題なく動作する。外部依存のないポータブルなC実装である点も特徴で、サーバーを必要としないSQLiteの設計思想をそのまま継承している。 現状と今後の展望 vec1は現時点でバージョン0.8にあたり、1.0に必要な機能は揃ったものの正式リリース前の段階にある。配布形態としてはamalgamationには含まれておらず、利用するにはローダブル拡張としてmake vec1.soを実行し明示的にビルドする必要がある。テストはまだ十分とは言えない状態だが、MSVC対応や細かな修正が日々コミットされており開発は活発に進んでいる。元記事の著者は、埋め込みモデルを使わず音の近さだけから日本語単語を検索するツール「yomivec」でvec1を実際に試し、22万語の取り込み(インデックスへの登録)が2秒で完了したことを報告している。SQLiteはサーバー不要でファイル1つで動作するため、スマートフォンアプリやブラウザなど様々な環境に組み込まれてきた経緯がある。そこに公式のベクトル検索機能が加わることで、外部サービスに依存せずに意味検索を実現できる場面が広がることが期待されており、正式リリースへの注目が高まっている。

October 18, 2026

Node.js v26.12.0とv24.22.0が公開、WebSocketマスク処理APIやSQLiteの安全性強化を追加

概要 Node.jsプロジェクトは10月14日、Current系列の最新版v26.12.0と、LTS系列(コードネームKrypton)の最新版v24.22.0を公開した。いずれもマイナーアップデートだが、WebSocket通信やSQLiteモジュールの安全性・堅牢性を高める変更が多数取り込まれており、今後年1回のメジャーリリースサイクルへ移行するというリリーススケジュール変更を控えた節目のアップデートと位置づけられる。 WebSocketとAPIまわりの拡張 v26.12.0ではhttpモジュールにwebsocketMask()とwebsocketUnmask()が新たに追加された。これによりWebSocketフレームのマスキング/アンマスキング処理をアプリケーション側から直接制御できるようになり、WebSocketサーバーやプロキシの実装者にとって低レベルの処理を自前で組み立てやすくなる。また、WebAssemblyまたは正規表現(RegExp)サポートが欠けた環境ではエラーをスローするよう変更され、実行環境間での挙動の一貫性が向上した。 一方のv24.22.0ではcrypto関連の拡張が目立つ。PKCS#12形式を解析するcrypto.parsePKCS12()、汎用メッセージ認証コードを扱うGeneric MAC API、SIV/GCM-SIVモードのCipher/Decipher対応などが加わったほか、OpenSSLプロバイダーから利用可能な暗号・ハッシュアルゴリズムを動的に検出できるようになった。このほかパフォーマンス計測用のperformance hooksにSlidingWindowHistogramや信頼区間を算出するmeanCI、ヒストグラムのCBORエクスポート/インポートが加わり、ユーティリティ関数にはutil.debounce()やutil.throttle()が新設されるなど、アプリケーション開発者向けの地味だが実用的な機能追加が多い。 SQLiteモジュールの安全性強化 両バージョンに共通するテーマの一つがSQLiteモジュールの堅牢化だ。v26.12.0では、サイズ超過の文字列を扱った際にプロセスを中止(abort)するのではなくエラー(ERR_STRING_TOO_LONG)をスローするよう変更され、予測可能なエラーハンドリングが可能になった。またenableDefensive()で有効化した防御的モードの設定がデータベースの再オープン後も保持されるようになったほか、集約関数(aggregate)の名前やオプションの検証も強化され、不正な値の使用を防ぐ。v24.22.0側でもStatementSync.prototype.close()とSymbol.disposeによるdispose protocol対応が加わり、ステートメントのリソース管理がしやすくなっている。 その他の改善と依存関係の更新 v26.12.0ではStream/Iterator関連の改善としてdump()/dumpSync()が追加されたほか、閉じたストリームへの書き込みでTypeErrorをスローするようエラーハンドリングが強化された。また不要なミューテックスやロック機構を削除することでcrypto処理のパフォーマンスが向上している。依存関係ではacornが8.19.0、sqliteが3.54.0、simdjsonが5.0.3にそれぞれ更新された。 v24.22.0ではHTTP/HTTP2のソケット破棄やチャンク書き込みの最適化、TLSのSNICallback・OCSPRequestまわりの改善、Windows環境での読み取り専用ファイル削除対応など、幅広い修正が入っている。セキュリティ面ではFIPSモードの改善とFIPS indicator diagnostics channelの追加、WebCryptoでの非FIPSパスの無効化が行われた。依存関係はnpmが11.19.1、simdjsonが4.6.11、zlibが1.3.2.1-motleyに更新されている。 今回のリリースは単体の目玉機能よりも、WebSocketやSQLiteまわりの安全性・一貫性を底上げする地道な改善が中心であり、Node.jsが年1回のメジャーリリースサイクルへ移行する前段階として、既存機能の安定性を固める意図がうかがえる。

October 17, 2026