uv dedupliziert jetzt jede Datei im Wheel-Cache und spart so 545 MiB

uv: Deduplicate all files in the wheel cache

Ein Pull Request für uv, den schnellen Python-Paketmanager von Astral, führt Datei-Deduplizierung im Wheel-Cache ein. Bisher wurde nur auf Wheel-Ebene dedupliziert; jetzt werden alle Dateien anhand ihres BLAKE3-Hashes gespeichert und per Hardlink in die Archive verlinkt. Das spart auf einer typischen Maschine 545 MiB (ca. 10 % des Caches). Kalte Installationen werden dadurch um weniger als 4 % langsamer, warme Installationen bleiben unverändert. Die Änderung ist hinter dem Preview-Feature content-addressed-cache verfügbar.

Wir sparen also 545,2 MiB auf meinem lokalen Rechner, also etwa 10 % des Caches – und der Nettoeffekt scheint ein <4 % langsamerer Kaltstart zu sein, was ich hier für wahrscheinlich lohnenswert halte.
  1. notatallshaw

    Als pip-Maintainer habe ich mir schon lange die Kompromisse von uvs Cache angesehen; es ist der größte Faktor, der warme Installationen bei uv schneller macht als bei pip. Während pip die ursprünglichen Distributionen cached und sie dann jedes Mal entpacken muss, cached uv die entpackte Distribution und verlinkt sie per Hardlink, wenn möglich.

    Aber es gab schon immer zwei große Probleme:

    1. Keine Möglichkeit, exakte Distributionen für einen "Download"-Befehl zu reproduzieren (es gibt kein uv-Äquivalent zu "pip download")

    2. Für Leute mit vielen verschiedenen Umgebungen wächst der Cache deutlich stärker als bei pip

    Ich bin gespannt zu sehen, zumindest anekdotisch, ob dies 2 deutlich verbessert; dann könnten wir vielleicht eine zweischichtige Caching-Strategie haben, ohne die erheblichen Plattenspeicherkosten.

  2. stephenlf

    uv ist das Rückgrat jeder modernen Python-Bibliothek. Ich freue mich auf Verbesserungen.

    https://stephenlf.dev/blog/python-library-in-2026/

  3. mark_l_watson

    Schöne Verbesserung. Für mich ist uv das 'Quicklisp für Python'. uv hat mir einfach ermöglicht, Python zu genießen, so wie Quicklisp Common Lisp einfach angenehmer zu nutzen macht.

    Ich war schon immer ein Lisp-Anhänger, aber vor ein paar Jahren, als ich anfing, uv zu nutzen, begann ich, Python als eine Sprache zu sehen, die ich wirklich gerne nutzen kann, also habe ich mich bemüht, mein Python-Entwicklungssetup nahezu reibungslos zu gestalten.

  4. TacticalCoder

    > Deduplizierung auf Dateiebene: Jede Datei wird jetzt unter ihrem BLAKE3-Hash gespeichert

    Blake3 ist wirklich ein wunderbar schneller kryptografischer Hash. Ich verwende ihn für mein eigenes "Deduplizierungs-/Integritäts-/Berzerker"-Dienstprogramm (das ich gemacht habe, bevor LLMs ein Ding waren).

    Wenn ich eine Datei habe, die heißt:

    DSC98731-b3-7b39197a22.JPG

    dann:

    - wenn diese Datei nicht auf 7b39197a22 zurückprüft, gibt es ein Dateiintegritätsproblem (erstaunlich, und es hat mir bereits geholfen, Probleme zu beheben)

    - wenn irgendeine andere Datei denselben Blake3-Hash 7b39197a22 hat, ist es ein Duplikat

    - wenn diese 7b39197a22-Prüfsumme in meiner Datenbank ist, "können Dinge passieren".

    Zum Beispiel kann meine DB sagen: "Jede Datei mit einem Blake3-Hash von 7b39197a22 kann immer gelöscht werden" oder "Jede Datei mit einem Blake3-Hash von 887463c09e, wenn sie einen generischen Dateinamen wie 'dscXXXXX' hat, kann immer umbenannt werden in '20260722jackJohnAtTheBeach-b3-778463c09e.jpg' (oder was auch immer dir passt).

    Es ist wirklich großartig (und ich weiß, dass mehrere hier unabhängig ähnliche Schemata gemacht haben) und Blake3 ist ein erstaunlicher Hash für solche Verwendungen.

  5. CivBase

    Eine 10%ige Reduzierung der Cache-Größe im Austausch für eine 4%ige Verlangsamung scheint mir nicht offensichtlich lohnenswert, besonders wenn es mit einer erhöhten Komplexität einhergeht.

  6. dboreham

    Die Leute sagen, uv sei gut, weil es schnell ist, aber ehrlich gesagt ist mir das egal. Wir sind darauf umgestiegen, es für die Verteilung unserer Python-basierten Tools zu verwenden, weil es sehr bequem ist, direkt aus einem Git-Repository zu installieren und anschließend aus demselben Repository zu aktualisieren. Keine Notwendigkeit, ein Paket zu bauen.

  7. as1297kj

    Was ist der Sinn, Paketsoftware zu verwenden, die ClosedAI gehört?

    Astral-Leute sind bereits in den Kommentaren und machen Pro-AI-Coding-Aussagen. Indem du uv verwendest, unterstützt du buchstäblich die Leute, die dich für Aktienoptionen arbeitslos machen wollen.

Mehr von diesem Tag

2026-08-31