mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-05-17 14:16:34 +00:00
117 lines
3.2 KiB
Markdown
117 lines
3.2 KiB
Markdown
---
|
|
title: Crabz
|
|
homepage: https://github.com/sstadick/crabz
|
|
tagline: |
|
|
crabz: multi-threaded gzip (like pigz, but in Rust)
|
|
---
|
|
|
|
To update or switch versions, run `webi crabz@stable` (or `@0.8`, `@beta`, etc).
|
|
|
|
## Cheat Sheet
|
|
|
|
> `crabz` brings the power of multi-core compression to gzip and deflate. \
|
|
> (and a few other formats + other useful features)
|
|
|
|
gzip, faster.
|
|
|
|
```sh
|
|
crabz -I ./example.json
|
|
crabz -d -I ./example.json.gz
|
|
```
|
|
|
|
```text
|
|
Compressing (gzip) with 8 threads at compression level 6.
|
|
Decompressing (gzip) with 8 threads available.
|
|
```
|
|
|
|
## Table of Contents
|
|
|
|
- Files
|
|
- Tar
|
|
- Other Formats
|
|
|
|
### Files
|
|
|
|
These are the files/directories that are created and/or modified with this
|
|
install:
|
|
|
|
```text
|
|
~/.config/envman/PATH.env
|
|
~/.local/bin/crabz
|
|
```
|
|
|
|
#### How to Optimize
|
|
|
|
| Flag | Value | Comments |
|
|
| ----------------------------- | ----- | ------------------------------------------ |
|
|
| `-l`, `--compression-level` | 1-9 | higher is slower |
|
|
| `-p`, `--compression-threads` | 8 | set to the number of available cores |
|
|
| | | (but no more than 4 for decompression) |
|
|
| `-P`, `--pin-at` | 0 | pin to physical cores, starting at N |
|
|
| | | (so 4 threads starting at 0 is 0, 1, 2, 3) |
|
|
|
|
```sh
|
|
crabz -l 9 -p 8 -I ./example.tar
|
|
|
|
crabz -d -p 4 -I ./example.tar.gz
|
|
```
|
|
|
|
#### How to use with Tar
|
|
|
|
Tar and then compress:
|
|
|
|
```sh
|
|
tar cv ./example/ | crabz -o ./example.tar.gz
|
|
```
|
|
|
|
Or decompress and then untar:
|
|
|
|
```sh
|
|
crabz -d ./example.tar.gz | tar xv
|
|
```
|
|
|
|
#### How to use with other formats
|
|
|
|
`crabz` supports most of the _LZ77 with Huffman coding_ compression formats:
|
|
|
|
| Format | Extension | Notes |
|
|
| ---------------- | --------- | ------------------------------------ |
|
|
| `gzip` | `.gz` | of GNU fame |
|
|
| [`bgzf`][bgzf] | `.gz` | supports random-access decompression |
|
|
| [`mgzip`][mgzip] | `.gz` | of python fame |
|
|
| `zlib` | `.zz` | of PNG fame, also `.z` |
|
|
| [`snap`][snap] | `.sz` | of LevelDB and MongoDB fame |
|
|
| `deflate` | `.gz` | the O.G. LZ77 |
|
|
|
|
```sh
|
|
crabz --format mgzip -I ./example.tar
|
|
```
|
|
|
|
```sh
|
|
# DO NOT decompress in-place
|
|
crabz --format mgzip -d ./example.tar.gz -o ./example.tar
|
|
|
|
# verify before removing the original
|
|
tar tf ./example.tar
|
|
```
|
|
|
|
⚠️ **Warnings**:
|
|
|
|
- DO NOT deflate in-place with non-standard formats: \
|
|
Although `gunzip` will work correctly on files compressed with `mgzip` or
|
|
`bgzf`, some combinations (ex: decompressing from `mgzip` with `bgzf`) could
|
|
result in corruption!
|
|
- `tar xvf` and `gzip -l` may report incorrect information, even though `gunzip`
|
|
will work
|
|
|
|
See also:
|
|
|
|
- https://dev.to/biellls/compression-clearing-the-confusion-on-zip-gzip-zlib-and-deflate-15g1
|
|
|
|
(p.s. `zip` isn't in the list because it's a container format like `tar`, not a
|
|
zip format)
|
|
|
|
[snap]: https://github.com/google/snappy/blob/main/format_description.txt
|
|
[bgzf]: https://samtools.github.io/hts-specs/SAMv1.pdf
|
|
[mgzip]: https://pypi.org/project/mgzip/
|