haskell / haskell/cabal-cache

Ability to use different compressor

Open
#153 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
50
Forks
11
PR merge metrics
No merged PRs in 30d

Description

Currently we are forced to use `gunzip` to make `tar.gz` archives.

I'd like to use `zstd` because it's just better: notably, it's much faster. This can make a big difference in CI when syncing down packages.

I think if we are able to give flags like
- `--compressor=zstd`
- `--compressor-extension=zst`

The changes to code ought to be fairly minimal:

* When `compressor` is set, pass `-I ` to `tar`.
* Instead of `tar.gz`, use `tar.`. `gz` if not set. Don't pass `-z` to `tar` unless we're using gunzip.

Maybe instead of `--compressor`, multiple `--tar-flag` are much more flexible.

This approach relies on the compressor binary being installed and doesn't add any new dependency to `cabal-cache` itself.

----

Apparently `tar` itself has some `zstd` support via the `--zstd` flag but at least on my system, but it's probably a much newer flag than just using `-I`.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.