uv: Deduplicate all files in the wheel cache

(github.com)

64 points | by tosh 5 hours ago

3 comments

  • as1297kj 15 minutes ago
    What is the point of using packaging software that belongs to ClosedAI?

    Astral people are already in the comments making pro AI coding statements. By using uv, you are literally supporting the people who want to make you unemployed for stock options.

    • embedding-shape 9 minutes ago
      > By using uv, you are literally supporting the people who want to make you unemployed for stock options.

      By using any FOSS or software produced by software developers and programmers, you are supporting the idea that computation can and should be automated, instead of having humans doing it. This is the origin of computing, and what we've been doing so far, and it continues to "eat the world" via automation, just like the past decades of it.

  • TacticalCoder 59 minutes ago
    > deduplication at the file level: every file is now stored under its BLAKE3 hash

    Blake3 is really a wonderfully fast cryptographic hash. I use it for my own "deduplication / integrity / berzerker" utility (which I made before LLMs were a thing).

    If I've got a file named:

        DSC98731-b3-7b39197a22.JPG
    
    then:

        - if that file doesn't checksum back to 7b39197a22 there's a file integrity problem (amazing and it already helped me troubleshoot issues)
    
        - if any other file has the same Blake3 7b39197a22 hash, it's a duplicate
    
        - if that 7b39197a22 checksum is in my database, "things can happen".
    
    For example my DB can say "any file with a Blake3 hash of 7b39197a22 can always be deleted" or "any file with a Blake3 hash of 887463c09e, if it's got a generic filename like "dscXXXXX" can always be renamed to "20260722jackJohnAtTheBeach-b3-778463c09e.jpg" (or whatever suits you).

    It's really great (and I know several here independently made similar schemes) and Blake3 is an amazing hash for those kind of use.

    • Someone 37 minutes ago
      For those wondering like me: Blake3 generates hashes of at least 224 bits, not, as a literal reading of that comment indicates, 40 bits (which would be bad for file deduplication, giving you a 50% hash collision after around a million files)
    • dist-epoch 34 minutes ago
      It's annoying that most file formats don't checksum their own content.

      Even formats which should know better, like SQLite, delegate that to the filesystem, most of which are also not checksumed and which delegate that further to the storage.

      PostgreSQL, which prides itself by it's quality and reliability, only turned on checksums by default in the last version, 18.

      This is one great benefit of using .zip files as file formats, you get this for free.

      • OskarS 16 minutes ago
        I think it's reasonable for a DB like SQLite to delegate that to the filesystem. There is an overhead for doing it on the DB level, and since SQLite is just a file on the filesystem which, presumably, is serving many other files as well, why would you trust anything else on the filesystem if you don't trust SQLite? Like, your PHP script (or nginx server executable, or whatever) that is calling SQLite, that's not going to be check-summed either. Either you trust your filesystem or you don't, and if you don't, checksum and error correct on the filesystem level.

        Though fair enough, it could offer it as an opt-in thing.

  • dboreham 1 hour ago
    People say uv is good because it's fast, but honestly I don't care about that. We switched to using it for distribution of our Python-based tools because it makes it very convenient to install directly from a git repository and then to subsequently update from same repository. No need to build a package.
    • Neywiny 45 minutes ago
      I tried it out successfully for the first time the other day (had 1 false start some months ago). This is after 10 ish years of system wide installs or venvs. I didn't find it fast at all. Every time I went to run the script it spent multiple seconds checking dependencies. Then one time it updated one, which luckily didn't break anything but I did get concerned. I'm sure there're some flags I didn't know to use but uvx was not great. On the other hand, it did seem to install the packages faster than pip.
      • intoXbox 26 minutes ago
        I do avoid uv run for this reason but it’s useful for managing python projects. The speed claims actually have a lot to do with efficient caching, and I run several projects on the same Python (patch) version with similar packages on the same system
      • nmstoker 37 minutes ago
        YMMV depending on specific needs but generally even on Windows on an average machine with an imperfect setup I've found it exceptionally fast, often well inside the sub-second range, to the point that I do sometimes worry if it really ran.

        Sounds like it's worth another look at your settings to make sure they are right.