Pure Go package for reading and writing xz-compressed files with a command-line tool included.
Package xz is a pure Go implementation for reading and writing xz-compressed files and streams. It provides both a library API for programmatic compression/decompression within Go applications and a command-line tool called gxz for file operations. The package solves the need for xz compression capabilities in Go environments without relying on external C libraries or tools.
Go developers who need to integrate xz compression or decompression into their applications, tools, or build processes, particularly those prioritizing security and dependency management.
Developers choose this package because it's written entirely in Go with no C dependencies, making it easier to build, deploy, and secure compared to binding to the original xz C library. It also provides immunity to certain supply-chain vulnerabilities affecting the original implementation.
Pure golang package for reading and writing xz-compressed files
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Written entirely in Go with no C dependencies, making it easy to build and deploy in Go environments without external library hassles, as highlighted in the README.
Not affected by CVE-2024-3094 and enforces strict security review policies for patches, providing a safer alternative to C-based xz utilities.
Includes the gxz command-line utility for compressing and decompressing files directly from the terminal, adding convenience for Go developers.
Offers a straightforward API for reading and writing xz streams, as demonstrated in the example code, facilitating easy integration into Go applications.
APIs are not considered stable, as stated in the README, meaning breaking changes could occur, which is risky for production code.
Cannot compete with the original xz tool regarding compression speed and size, as admitted in the README, due to its early development stage and lack of optimizations.
Being under development, there might be undiscovered bugs, and the package is less mature compared to established alternatives like xz-utils.