hstar: Haskell version of tar CLI utility

[ archive, bsd3, codec, program, tar ] [ Propose Tags ]

Haskell implementation of the tar utility, demonstrating backpack


[Skip to Readme]
Versions [faq] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4
Change log CHANGELOG.md
Dependencies archive-libarchive, archive-sig (>=0.2.1.2), archive-tar, archive-tar-bytestring, base (>=4.11 && <5), brotli, bytestring, bz2 (>=1.0.0.0), lz4-hs (>=0.1.1.0), lzlib (>=1.0.1.0), lzma, lzo (>=0.1.1.0), optparse-applicative, snappy-lazy, zlib, zstd [details]
License BSD-3-Clause
Copyright Copyright: (c) 2019-2020 Vanessa McHale
Author Vanessa McHale
Maintainer vamchale@gmail.com
Category Codec, Tar, Archive
Bug tracker https://github.com/vmchale/archive-backpack/issues
Source repo head: git clone https://github.com/vmchale/archive-backpack(hstar)
Uploaded by vmchale at 2020-05-01T02:08:14Z
Distributions NixOS:0.1.0.4
Executables hstar
Downloads 370 total (233 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2020-05-01 [all 3 reports]

Flags

NameDescriptionDefaultType
development

Enable -Werror

DisabledManual
pure

Use Haskell backend instead of libarchive

DisabledAutomatic
tar-bytestring

Use tar-bytestring

DisabledAutomatic
with-brotli

Enable brotli compression support

EnabledAutomatic
with-snappy

Enable snappy support

DisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hstar-0.1.0.4

[back to package description]

hstar

hstar is a command-line tool like tar, but written in Haskell and taking advantage of backpack.

It can be built with a libarchive backend wrapping the C library, or the tar library written in Haskell.

Use

To generate bash shell completions:

hstar --bash-completion-script hstar

Performance

Benchmarks run on Linux.

hstar built with the libarchive backend.

| Program | Compression | Command | Time | | ------- | ----------- | ------- | ---: | | bsdtar | lz4 | bsdtar -xf ghc-8.8.2-x86_64-deb9-linux.tar.lz4 | 2.411 s | | hstar | lz4 | hstar unpack ghc-8.8.2-x86_64-deb9-linux.tar.lz4 | 2.529 s | | GNU tar | lz4 | lz4 -cd ghc-8.8.2-x86_64-deb9-linux.tar.lz4 \| tar -xf - | 2.539 s | | Schily tar | lz4 | lz4 -cd ghc-8.8.2-x86_64-deb9-linux.tar.lz4 \| star -xf - | 1.572 s | | bsdtar | gzip | bsdtar -xf ghc-8.8.2-x86_64-deb9-linux.tar.gz | 4.625 s | | hstar | gzip | hstar unpack ghc-8.8.2-x86_64-deb9-linux.tar.gz | 6.378 s | | GNU tar | gzip | tar xf ghc-8.8.2-x86_64-deb9-linux.tar.gz | 8.335 s | | Schily tar | gzip | star xf ghc-8.8.2-x86_64-deb9-linux.tar.gz | 8.379 s | | bsdtar | lzip | bsdtar -xf ghc-8.8.2-x86_64-deb9-linux.tar.lz | 12.49 s | | hstar | lzip | hstar unpack ghc-8.8.2-x86_64-deb9-linux.tar.lz | 16.12 s | | GNU tar | lzip | tar xf ghc-8.8.2-x86_64-deb9-linux.tar.lz | 16.71 s | | Schily tar | lzip | star xf ghc-8.8.2-x86_64-deb9-linux.tar.lz | 15.81 s | | bsdtar | lzma | bsdtar -xf ghc-8.8.2-x86_64-deb9-linux.tar.xz | 14.95 s | | hstar | lzma | hstar unpack ghc-8.8.2-x86_64-deb9-linux.tar.xz | 15.37 s | | GNU tar | lzma | tar xf ghc-8.8.2-x86_64-deb9-linux.tar.xz | 14.32 s | | Schily tar | lzma | star xf ghc-8.8.2-x86_64-deb9-linux.tar.xz | 14.37 s | | bsdtar | bzip2 | bsdtar -xf ghc-8.8.2-x86_64-deb9-linux.tar.bz2 | 37.85 s | | hstar | bzip2 | hstar unpack ghc-8.8.2-x86_64-deb9-linux.tar.bz2 | 38.99 s | | GNU tar | bzip2 | tar xf ghc-8.8.2-x86_64-deb9-linux.tar.bz2 | 37.90 s | | Schily tar | bzip2 | star xf ghc-8.8.2-x86_64-deb9-linux.tar.bz2 | 38.27 s | | bsdtar | zstd | bsdtar -xf ghc-8.8.2-x86_64-deb9-linux.tar.zst | 2.232 s | | hstar | zstd | hstar unpack ghc-8.8.2-x86_64-deb9-linux.tar.zst | 3.053 s | | GNU tar | zstd | tar xf ghc-8.8.2-x86_64-deb9-linux.tar.zst | 2.644 s | | Schily tar | zstd | star xf ghc-8.8.2-x86_64-deb9-linux.tar.zst | 2.237 s |