uv сокращает кэш wheel-файлов на 10% благодаря дедупликации на уровне файлов
uv: Deduplicate all files in the wheel cache
В uv появилась дедупликация всех файлов в кэше wheel: каждый файл теперь хранится по его BLAKE3-хешу в новом bucket `files-v0`, а hardlink'и обеспечивают доступ из `archive-v0`. Это сокращает кэш примерно на 10% (545 МБ на тестовой машине), при этом замедление холодных установок не превышает 4%, а тёплые установки не замедляются вовсе. Изменение затрагивает все файлы, а не только исполняемые и библиотеки, и не меняет процесс установки.
Мы экономим 545.2 МиБ на моей локальной машине, или около 10% кэша, в обмен на замедление холодных установок менее чем на 4%, что, вероятно, оправдано.
- notatallshaw
Будучи мейнтейнером pip, я давно смотрю на компромиссы кэша uv — это самый большой фактор, который делает тёплые установки быстрее в uv, чем в pip. Поскольку pip кэширует исходные дистрибутивы и затем каждый раз распаковывает их, uv кэширует распакованный дистрибутив и жёстко линкуется на него, если может. Но у него всегда было две основные проблемы: 1. Нет способа воспроизвести точные дистрибутивы для команды "download" (нет аналога "pip download" в uv). 2. Для людей с большим количеством разных окружений кэш разрастается значительно сильнее, чем у pip. Мне интересно посмотреть, хотя бы анекдотически, если это значительно улучшит пункт 2, то, возможно, мы сможем применить двухуровневую стратегию кэширования без значительных затрат дискового пространства.
- mark_l_watson
Отличное улучшение. Для меня uv — это "Quicklisp для Python". uv просто позволил мне наслаждаться Python так же, как Quicklisp делает Common Lisp приятнее в использовании. Я всегда был преданным поклонником Lisp, но несколько лет назад, когда я начал использовать uv, я стал видеть Python как язык, которым я действительно могу наслаждаться, поэтому я вложил усилия в то, чтобы сделать мою среду разработки на Python почти без трения.
- stephenlf
uv — это основа любой современной библиотеки Python. Я рад видеть улучшения. https://stephenlf.dev/blog/python-library-in-2026/
- CivBase
Сокращение кэша на 10% в обмен на замедление на 4% не кажется мне очевидно полезным, особенно когда это сопровождается увеличением сложности.
- TacticalCoder
> дедупликация на уровне файлов: каждый файл теперь хранится под его BLAKE3-хэшем. Blake3 — действительно удивительно быстрый криптографический хэш. Я использую его для своей собственной утилиты "дедупликации / целостности / берсеркера" (которую я сделал до того, как LLM стали мейнстримом). Если у меня есть файл с именем: DSC98731-b3-7b39197a22.JPG, то: - если этот файл не соответствует контрольной сумме 7b39197a22, есть проблема с целостностью файла (удивительно, и это уже помогало мне диагностировать проблемы); - если любой другой файл имеет тот же хэш Blake3 7b39197a22, это дубликат; - если эта контрольная сумма 7b39197a22 есть в моей базе данных, "могут происходить вещи". Например, моя БД может сказать "любой файл с хэшем Blake3 7b39197a22 всегда можно удалить" или "любой файл с хэшем Blake3 887463c09e, если у него общее имя файла, например "dscXXXXX", всегда можно переименовать в "20260722jackJohnAtTheBeach-b3-778463c09e.jpg" (или как вам удобно). Это действительно здорово (и я знаю, что несколько человек здесь независимо сделали похожие схемы), и Blake3 — потрясающий хэш для такого рода применений.