uv deduplica todos los archivos de su caché de wheels y ahorra un 10% de espacio

uv: Deduplicate all files in the wheel cache

El PR #21327 de uv introduce deduplicación a nivel de archivo en la caché de wheels: cada archivo se almacena bajo su hash BLAKE3 en un bucket `files-v0`, y se enlazan físicamente (hardlinks) en sus ubicaciones originales en `archive-v0`. Esto elimina duplicados tanto dentro como entre wheels, logrando un ahorro de 545.2 MiB (aproximadamente el 10% de la caché) en la máquina del autor. El impacto en el rendimiento es mínimo: un aumento de menos del 4% en instalaciones en frío y sin efecto en instalaciones en caliente. La implementación mantiene la compatibilidad con el diseño de caché existente y pasa todas las pruebas de integración.

Estamos ahorrando 545.2 MiB en mi máquina local, o alrededor del 10% de la caché.
  1. notatallshaw

    Como mantenedor de pip, hace tiempo que vengo analizando las ventajas y desventajas de la caché de uv; es el factor más importante que hace que las instalaciones en caliente sean más rápidas con uv que con pip. Mientras que pip almacena en caché las distribuciones originales y luego tiene que descomprimirlas cada vez, uv guarda la distribución descomprimida y crea enlaces duros a ella si es posible.

    Pero siempre ha tenido dos problemas importantes:

    1. No hay forma de reproducir distribuciones exactas para un comando de "descarga" (no existe un equivalente de "pip download" en uv).

    2. Para personas con muchos entornos distintos, la caché crece significativamente más que la de pip.

    Me interesa ver, al menos de forma anecdótica, si esto mejora significativamente el punto 2; entonces quizás podamos tener una estrategia de caché de dos capas sin el coste significativo de espacio en disco.

  2. stephenlf

    uv es la columna vertebral de cualquier biblioteca moderna de Python. Me alegra ver mejoras.

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

  3. mark_l_watson

    Buena mejora. Para mí, uv es el 'Quicklisp para Python'. uv me ha permitido disfrutar usando Python como Quicklisp hace que Common Lisp sea más agradable de usar.

    Siempre he sido un devoto de Lisp, pero hace unos años, cuando empecé a usar uv, empecé a ver Python como un lenguaje que realmente podía disfrutar, así que me esforcé en hacer mi configuración de desarrollo en Python casi sin fricción.

  4. TacticalCoder

    > deduplicación a nivel de archivo: cada archivo se almacena ahora bajo su hash BLAKE3

    Blake3 es realmente un hash criptográfico maravillosamente rápido. Lo uso para mi propia utilidad de "deduplicación / integridad / berserker" (que hice antes de que existieran los LLM).

    Si tengo un archivo llamado:

    DSC98731-b3-7b39197a22.JPG

    entonces:

    - si ese archivo no coincide con el checksum 7b39197a22, hay un problema de integridad (increíble, y ya me ha ayudado a solucionar problemas)

    - si cualquier otro archivo tiene el mismo hash Blake3 7b39197a22, es un duplicado

    - si ese checksum 7b39197a22 está en mi base de datos, "pueden pasar cosas".

    Por ejemplo, mi base de datos puede decir "cualquier archivo con un hash Blake3 de 7b39197a22 siempre se puede eliminar" o "cualquier archivo con un hash Blake3 de 887463c09e, si tiene un nombre genérico como 'dscXXXXX', siempre se puede renombrar a '20260722jackJohnAtTheBeach-b3-778463c09e.jpg' (o lo que prefieras).

    Es realmente genial (y sé que varios aquí han hecho esquemas similares de forma independiente) y Blake3 es un hash asombroso para este tipo de usos.

  5. CivBase

    Una reducción del 10% en el tamaño de la caché a cambio de una ralentización del 4% no me parece obviamente que valga la pena, especialmente cuando viene acompañada de un aumento en la complejidad.

  6. dboreham

    La gente dice que uv es bueno porque es rápido, pero sinceramente eso no me importa. Cambiamos a usarlo para distribuir nuestras herramientas basadas en Python porque hace que sea muy conveniente instalar directamente desde un repositorio git y luego actualizar desde el mismo repositorio. No hay necesidad de construir un paquete.

  7. as1297kj

    ¿Qué sentido tiene usar software de empaquetado que pertenece a ClosedAI?

    La gente de Astral ya está en los comentarios haciendo declaraciones a favor de la programación con IA. Al usar uv, estás apoyando literalmente a las personas que quieren dejarte sin empleo a cambio de opciones sobre acciones.

Más de este día

2026-08-31