this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Changelog#

All notable changes to this project will be documented in this file.

[0.4.0] - 2026-04-25#

Bug Fixes#

  • Trigger publish workflow explicitly from release-plz
  • Preserve per-stage config via Compressor::clone_boxed
  • Follow symlinks in container pre-walk to match walker
  • Enable ZIP64 to support archives with entries >4GiB
  • Avoid panics on non-UTF8 filenames
  • Show known total on pipeline compression bar

Documentation#

  • List brotli, snappy, and lzma in supported formats

Features#

  • Add brotli compression support
  • Add snappy framed compression support
  • Add legacy LZMA1 compression support
  • Recognize .tgz/.tbz/.tbz2/.txz/.tzst shortcut extensions
  • Add --force / -f to overwrite existing output
  • Generate shell completions and man page
  • Add --list / -l to print archive contents
  • Add 7zip backend with sevenz-rust2
  • Add --level compression level support
  • Add --level compression level support
  • Add progress bars with shared pre-walk helper
  • Add progress bars during compression
  • Add progress bars during extraction
  • Add progress bars during compression
  • Add progress bars during extraction
  • Install shell completions and document usage
  • Accept compound format prefix like tar.gz as first arg
  • Preserve shortcut format string in default output name
  • Add --append flag for growing tar and zip archives in place

Miscellaneous Tasks#

  • Declare MSRV of 1.88 in Cargo.toml
  • Validate aarch64 in nix.yml and attach static binaries to releases
  • Pin all GitHub Actions to commit SHAs

Refactor#

  • Extract shared I/O helpers for single-stream codecs
  • Extract job inference into its own module
  • Add LevelArgs::resolve to trim backend constructors
  • Extract mechanical helpers from get_job
  • Linearize output/action/compressor resolution in get_job
  • Eliminate Action::Unknown in favor of Option
  • Gate behind cfg(test) to exclude from release binary
  • Unify single + shortcut extension lookup in chain_from_ext
  • Collect compressors directly instead of round-tripping names
  • Replace wildcard utils imports with explicit ones
  • Drop redundant overrides and dead-code allows
  • Consolidate stream-codec scaffolding via prepare_output/copy_stream
  • Share threaded stage driver across compress/extract/list
  • Use inc-based ProgressReader for shared bars
  • Move clone_boxed to blanket helper trait
  • Collapse --decompress into --extract alias
  • Replace non-test unwraps with proper error handling

Styling#

  • Rename ExtractedTarget variants to CamelCase
  • Unify error message prefixes across job and backends
  • Apply cargo fmt

Testing#

  • Add lzma, brotli, tar, zip, and tar.* pipeline interop tests
  • Add tar.{bz2,zst,lzma,br,lz4,sz} roundtrip tests
  • Add snappy and tar.{lzma,br,lz4,sz} interop tests

[0.3.0] - 2026-03-29#

Bug Fixes#

  • Improve the compression level helpers
  • Disable progress bar in test.sh
  • Replace panics with proper Writer handling in all backends
  • Use correct changelog_config field in release-plz config
  • Correct snapcore/action-publish SHA pin
  • Match release-plz branch name prefix in PR detection
  • Fetch full git history for release-plz changelog generation

Documentation#

  • Add installation instructions
  • Update README with badges
  • Note that compression libraries are statically compiled

Features#

  • Adding support for unencrypted zip files
  • Improve tar with pipe support and more
  • Add progress bar to gzip
  • Add zstd support
  • Add lz4 support
  • Add static build for bzip2
  • Add multi-level compression support

Miscellaneous Tasks#

  • Add code coverage uploading
  • Improving code coverage infrastructure
  • Fixing code coverage upload
  • Fixing typo in taskfile
  • Overhaul of flake to use flake-parts
  • Loosen cargo dep restrictions
  • Update nix deps
  • Taskfile cleanup
  • Remove unnecessary nixpkgs from flake-parts
  • Iterate on the flake
  • Add vscode files to gitignore
  • Iterate on the taskfile
  • Stop building tests in nix build .#cmprss
  • Fiddle with the nix build and ci
  • Pin versions of actions helpers
  • Add FUNDING.yml
  • Setting up Github<->Codeberg syncing
  • Add task clippy:fix
  • Run all Tasks even if no files have changed
  • Bump nix flake deps
  • Bump cargo deps
  • Taskfile fixups
  • Fix treefmt by pointing directly to a rustfmt binary
  • Adding pkg-config for updated cargo deps
  • Remove unused KNOWN_EXTENSIONS, replace unreachable fallbacks with asserts
  • Statically link xz/lzma, update README
  • Bump nix flake deps
  • Bump cargo deps
  • Add release profile optimizations and dev dep opt-level
  • Replace cargo-audit with cargo-deny for comprehensive dependency checks
  • Add typos and shfmt to treefmt
  • Add shellcheck, actionlint, statix, deadnix as nix checks
  • Switch from Taskfile (go-task) to justfile
  • Relicense from MIT to AGPL-3.0-or-later
  • Add fully static musl build via nix
  • Add snapcraft packaging and CI
  • Add missing metadata fields to snap
  • Migrate release flow to release-plz with publish workflow
  • Add git-cliff config for release-plz changelog generation

Refactor#

  • Consolidate compression backends into dedicated module
  • Consolidate compressor lookup into single registry
  • Unify single-level and multi-level compressor selection
  • Rename MultiLevelCompressor to Pipeline and update module/comments
  • Use io::Error::other() and eliminate unwrap() calls
  • Migrate error handling from io::Error to anyhow

Styling#

  • Pin rustfmt edition to 2024, simplify treefmt rustfmt config

Testing#

  • Move comparison tests into Rust integration suite
  • Move the tar comparison tests into Rust
  • Add unit tests for pipeline extension scanning and trait methods

[0.2.0] - 2024-02-27#

Bug Fixes#

  • Remove leftover comment
  • Flush xz encoder/decoder to show correct output size
  • Error correction for 0 sized chunks
  • Restrict compression levels of bzip2

Documentation#

  • Add categories to Cargo.toml
  • Update the crate description

Features#

  • Add bzip2 support
  • Add shortcut for cargo audit
  • Switch out just for go-task
  • Pretty print the error messages
  • Add a progress bar to xz
  • Add argument to control progress bar
  • Add an option to set the chunk size for monitoring progress
  • Allow compression levels 'none' 'fast' 'best'
  • Add progress bar to bzip2
  • Allow decompress as an alias of extract
  • Add the magic cli

Miscellaneous Tasks#

  • Overcomplicate the taskfile
  • Add git-cliff to generate changelogs
  • Release v0.2.0

Refactor#

  • Minor changes to the utils
  • Move the args and parsing logic into compressor modules

Styling#

  • Fix clippy warnings

Testing#

  • Add tests for input parsing
  • Add a test script against the official tools

Build#

  • Add a commit helper script

[0.1.0] - 2023-12-09#

Bug Fixes#

  • Set name for devshell
  • Remove unused gzip::EXT
  • Removing unnecessary comments
  • Fixing bug while checking input extension
  • Cleaning up some comments and naming
  • Improve error message when inferring output name
  • Improve output identification
  • Use first file's name to generate output filename
  • Default extracted filename for gzip

Documentation#

  • Update package description
  • Add shorthand alias for gzip
  • Add usage examples
  • Cleanup the README
  • Add contributing guide
  • Add note about test coverage
  • Renaming my GH account to arcuru
  • Update description of gzip roundtrip tests
  • Cleanup of the README

Features#

  • Adding tar extraction
  • Use subcommands
  • Make tar operate on generic Readers/Writers
  • Adding gzip support
  • Allow compressing/extracting to a pipe
  • Make the input filename optional
  • Allow multiple input files to compression
  • Adding test stubs
  • Init Rust workflow
  • Rewrite cli parsing
  • Add justfile for short scripts
  • Add flags to ignore just stdin or stdout pipes
  • Add test target to justfile
  • Add xz support
  • Extend the check script
  • Add .envrc

Miscellaneous Tasks#

  • Bump flake deps
  • Expand Rust action
  • Ignore direnv cache
  • Add act and prettier to the environment
  • Add Nix action
  • Switch flake to use flake-parts and nci
  • All deps
  • Nix deps
  • Rust deps
  • Release v0.1.0

Refactor#

  • Redo the dispatching with generics
  • Use common arguments struct
  • Standardize the interface for compressors
  • Use common fn for constructing errors
  • Simplifying the compressor API
  • Simplify gzip compression and extraction
  • Remove the unused extract command

Styling#

  • Use descriptive names in CI

Testing#

  • Add some tar cli tests with target inference
  • Use nextest to run tests

Build#

  • Rewrite flake to use crane
  • Add separate cmprss package/app
  • Add overlay for easier consumption
  • Fix overlay output
  • Remove code coverage from nix flake check

Dev#

  • Switch to using treefmt

[0.0.1] - 2023-04-02#

Bug Fixes#

  • Disable clippy pre-commit

Documentation#

  • Adding basic cargo info

Features#

  • Add initial hello world
  • Adding flake for dependency management
  • Add tar compression

Miscellaneous Tasks#

  • Add nix result folder to gitignore
  • Bump flake deps