No description
  • Haskell 89.5%
  • Nix 10.5%
Find a file
2026-01-17 22:15:24 -08:00
bench cleanup 2026-01-16 22:31:32 -08:00
src lengthDistancePairCompressable 2026-01-17 22:15:24 -08:00
src-exe lengthDistancePairCompressable 2026-01-17 22:15:24 -08:00
test cleanup 2026-01-16 22:31:32 -08:00
.envrc compression works 2024-04-13 02:13:24 -07:00
.gitignore add benchmarking corpus into gitignore 2026-01-17 06:32:40 -08:00
cabal.project added compositions, a bzip2-style compression pipeline 2025-12-25 23:07:56 -05:00
compress.cabal lengthDistancePairCompressable 2026-01-17 22:15:24 -08:00
flake.lock added compositions, a bzip2-style compression pipeline 2025-12-25 23:07:56 -05:00
flake.nix lengthDistancePairCompressable 2026-01-17 22:15:24 -08:00
fourmolu.yaml dependency bump & fourmolu 2024-04-15 02:58:48 -07:00
LICENSE Add LICENSE 2024-04-15 20:35:54 -07:00
README.md move to using data.vector, move transformation to a typeclass 2026-01-16 21:09:53 -08:00

Compresses files using a whole host of compression techniques. Ideally users will be able to construct compression pipelines with 4 or 5 steps relatively easily.

On The Great Gatsby in plain text on project Gutenberg, it achieves a 0.526 compression ratio when using a word size of two bytes. On an arbitrary RAW image, it peaks at .622 with a 32 bit word size and .645 with a 16 bit one.

To run with Nix:

nix run ".#" --experimental-features "nix-command flakes" -- compress < myFile > myFile.compressed
nix run ".#" --experimental-features "nix-command flakes" -- decompress < myFile.compressed > myFile-decompressed
sha256sum myFile myFile-decompressed
wc -c myFile.compressed myFile 

To run with cabal:

cabal run . -- compress < myFile > myFile.compressed
cabal run . -- decompress < myFile > myFile-decompressed
sha256sum myFile myFile-decompressed
wc -c myFile.compressed myFile