uv、wheelキャッシュ内の全ファイルを重複排除して容量を約10%削減

uv: Deduplicate all files in the wheel cache

PythonパッケージマネージャーuvのPR #21327では、wheelキャッシュ内のファイルをBLAKE3ハッシュに基づいて重複排除する機能が提案されています。従来はwheel単位でのみコンテンツアドレス型キャッシュをサポートしていましたが、この変更によりファイル単位での重複排除が可能になります。ファイルは`files-v0`バケットに保存され、ハードリンクによって元の場所にリンクされるため、インストールプロセスは変わりません。ローカル環境でのテストでは、キャッシュサイズを約10%(545.2 MiB)削減しつつ、コールドインストールの速度低下は4%未満に抑えられています。

ファイル単位での重複排除により、キャッシュサイズを約10%削減しつつ、コールドインストールの速度低下は4%未満に抑えられます。
  1. notatallshaw

    pipのメンテナーとして、uvのキャッシュのトレードオフを長い間検討してきました。これは、uvがpipよりもウォームインストールを高速にする最大の要因です。pipは元のディストリビューションをキャッシュして毎回解凍するのに対し、uvは解凍済みのディストリビューションをキャッシュし、可能ならハードリンクします。しかし、常に2つの大きな問題がありました。1. 「ダウンロード」コマンドで正確なディストリビューションを再現する方法がない(「pip download」に相当するuvのコマンドがない)。2. 多くの異なる環境を持つ人にとって、キャッシュはpipよりも大幅に増大する。今回の改善で2が大幅に改善されるか、少なくとも逸話的にでも興味があります。そうであれば、ディスク容量の大きなコストなしに2層キャッシュ戦略を採用できるかもしれません。

  2. stephenlf

    uvは現代のPythonライブラリの基盤です。改善が見られて嬉しいです。https://stephenlf.dev/blog/python-library-in-2026/

  3. mark_l_watson

    素晴らしい改善です。私にとって、uvは「PythonのQuicklisp」です。uvのおかげで、QuicklispがCommon Lispをより使いやすくしてくれるのと同じように、Pythonを楽しんで使えるようになりました。私はずっとLispの信奉者でしたが、数年前にuvを使い始めてから、Pythonを本当に楽しめる言語だと思えるようになり、Pythonの開発環境をほぼ摩擦なくする努力をしました。

  4. TacticalCoder

    > ファイルレベルの重複排除:すべてのファイルは現在BLAKE3ハッシュの下に保存されます

    Blake3は本当に素晴らしく高速な暗号化ハッシュです。私は自分の「重複排除/整合性/ベルゼルカー」ユーティリティ(LLMが登場する前に作ったもの)に使っています。

    もし私が次のようなファイルを持っているなら:

    DSC98731-b3-7b39197a22.JPG

    そして:

    - そのファイルが7b39197a22にチェックサムで一致しなければ、ファイル整合性の問題がある(素晴らしいことで、すでに問題のトラブルシューティングに役立っています)

    - 他のファイルが同じBlake3 7b39197a22ハッシュを持っていれば、それは重複です

    - その7b39197a22チェックサムが私のデータベースにあれば、「何かが起こり得る」

    例えば、私のDBは「Blake3ハッシュが7b39197a22のファイルは常に削除してよい」とか「Blake3ハッシュが887463c09eのファイルで、一般的なファイル名(dscXXXXXなど)なら、常に20260722jackJohnAtTheBeach-b3-778463c09e.jpg(または任意の名前)にリネームしてよい」と言えます。

    本当に素晴らしいです(ここにいる何人かが独立に同様のスキームを作ったことを知っています)。Blake3はこの種の用途に最適なハッシュです。

  5. CivBase

    キャッシュサイズの10%削減と引き換えに4%の速度低下は、私には明らかに価値があるとは思えません。特に複雑さが増すことを考えると。

  6. dboreham

    人々はuvが速いから良いと言いますが、正直私はそれを気にしません。私たちはPythonベースのツールの配布にuvを使うように切り替えました。なぜなら、gitリポジトリから直接インストールし、その後同じリポジトリから更新するのが非常に便利だからです。パッケージをビルドする必要がありません。

  7. as1297kj

    ClosedAIに属するパッケージングソフトウェアを使う意味は何ですか?

    Astralの人々はすでにコメントでAIコーディング賛成の意見を述べています。uvを使うことで、あなたは文字通り、ストックオプションのためにあなたを失業させようとしている人々を支援しているのです。

この日のほかの記事

2026-08-31