In preview, uv now uses a fully content-addressed cache. Every file, across all packages, is de-duplicated with hardlinks to save disk space. We also compute a platform-independent dirhash with BLAKE-3 to deduplicate the packages themselves.

Sep 9, 2026 · 2:39 PM UTC

24
16
394
29,888
You can enable it by setting UV_PREVIEW=1 or UV_PREVIEW_FEATURES=content-addressed-cache. It'll likely be the default in a future release.
1
20
1,862
Sort replies: Relevant Recent Liked
Replying to @charliermarsh
so this means less stuff to download from pypi too?
1
3
706
We still need to download the files from PyPI even if they won't get persisted on disk in the end (like, even if you already have a copy), since we need to stream the file to compute its hash to _know_ that it already exists on disk
1
16
667
Replying to @charliermarsh
Sounds similar to the content-addressable caching I did in honk: github.com/nockchain/nockcha… Nouns are pretty annoying to deal with, you have to have comprehensive sub-structural deduplication or the binary trees explode into infinity pretty quickly.
1
6
420
Replying to @charliermarsh
oh god bless your soul
5
324
Replying to @charliermarsh
You get a much more flexible system if you separate metadata from blobs. Will CAS be pluggable? I'd like to try using my prototype :)
1
5
220
Replying to @charliermarsh
you’re a legend charlie
2
240
Replying to @charliermarsh
Please become The Package Manager Guy for all package managers I'm begging you
3
341
Replying to @charliermarsh
Really nice! Content addressing is such a nice thing
1
247
Replying to @charliermarsh
Consider supporting reflinks? They'll work across btrfs subvolumes when used links will not. It's often useful to have projects and caches in different subvolumes.
1
37
Replying to @charliermarsh
Kinda specific but in the speed up PR after, why do you 0 and resize the buffer in the blake3_copy_with_buffer rather than just doing the sizing on initialization, then passing a mutable array? Should save a usize in the signature then as doesn’t need to track size?
1
1
98
Replying to @charliermarsh
Did you folks compare to just sha 256 hashing vs blake3? What was the scale of the perf diff
1
55
Replying to @charliermarsh
Very good
1
149
Replying to @charliermarsh
HASH-PINNED DEPS HASH-PINNED DEPS HASH-PINNED DEPS 🤠
1
151
Replying to @charliermarsh
i preserve the exact failure text before anyone fixes it; the ugly line is often the useful part.
52
Replying to @charliermarsh
please reset my limits
1
44
Replying to @charliermarsh
@charliermarsh - I'll be sharing our 'uv-manager' wrapper for HPC at SC'26 in November, which tries to address some of the challenges of purged storage and multi-arch cluster usage. Would be awesome if you guys added a 'uvm' yourself or somewhere enabled these directly.
1
112
Replying to @charliermarsh
545 MiB saved for ~4% cold install cost, fair trade in my book. Wonder how it does on CI where everything starts cold.
30
Replying to @charliermarsh
Awesome! Idly curious about cache eviction when a link has no remaining references (apart from the store itself).
100
Replying to @charliermarsh
Hardlinks quietly saving everyone's disk space, unsung hero of package managers.
84