• dan@upvote.au
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 year ago

      They both have their use cases. Zstandard is for compression of a stream of data (or a single file), while 7-Zip is actually two parts: A directory structure (like tar) plus a compression algorithm (like LZMA which it uses by default) in a single app.

      7-Zip is actually adding zstd support: https://sourceforge.net/p/sevenzip/feature-requests/1580/

      • TechieDamien
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        Well when using zstd, you tar first, something like tar -I zstd -cf my_tar.tar.zst my_files/*. You almost never call zstd directly and always use some kind of wrapper.

        • dan@upvote.au
          link
          fedilink
          arrow-up
          7
          ·
          1 year ago

          Sure, you can tar first. That has various issues though, for example if you just want to extract one file in the middle of the archive, it still needs to decompress everything up to that point. Something like 7-Zip is more sophisticated in terms of how it indexes files in the archive, so I’m looking forward to them adding zstd support.

          FWIW most of my uses of zstd don’t involve tar, but it’s in things like Borgbackup, database systems, etc.

          • TechieDamien
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Yes, definitely. My biggest use is transparent filesystem compression, so I completely agree!

      • Gamma@programming.dev
        link
        fedilink
        English
        arrow-up
        11
        ·
        edit-2
        1 year ago

        Thought I’d check on the Linux source tree tar. zstd -19 vs lzma -9:

        ❯ ls -lh
        total 1,6G
        -rw-r--r-- 1 pmo pmo 1,4G Sep 13 22:16 linux-6.6-rc1.tar
        -rw-r--r-- 1 pmo pmo 128M Sep 13 22:16 linux-6.6-rc1.tar.lzma
        -rw-r--r-- 1 pmo pmo 138M Sep 13 22:16 linux-6.6-rc1.tar.zst
        

        About +8% compared to lzma. Decompression time though:

        zstd -d -k -T0 *.zst  0,68s user 0,46s system 162% cpu 0,700 total
        lzma -d -k -T0 *.lzma  4,75s user 0,51s system 99% cpu 5,274 total
        

        Yeah, I’m going with zstd all the way.

      • gamer@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        As always, you gotta know both so that you can pick the right tool for the job.