kulaginds / lzma

Go reader implementation of LZMA/LZMA2 algorithm by https://www.7-zip.org/sdk.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Golang LZMA reader implementation

Format specification

This package based on LZMA reader from C++ code LzmaSpec.cpp from specification.

The reader1 and reader2 has constructor specially for sevenzip package.

Benchmark

LZMA1 decompress

I have private 1GB tar file, compressed by lzma-utility from xz package.

Environment:

  • os: macOS Ventura 13.6.1 (22G313)
  • arch: amd64
  • cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz

Decompression speed:

  • 7z (21.07) - 52.37 MiB/s (+103.77%)
  • xz (5.4.3) - 43.99 MiB/s (+71.17%)
  • my (v0.0.1-alpha9) - 42.59 MiB/s (+65.71%)
  • ulikunitz/xz (orisano fork at commit 4b4c597)- 25.70 MiB/s (compared with this speed)

This reader more fast than package of ulikunitz/xz by reducing allocations, inlining hot functions and unbranching.

About

Go reader implementation of LZMA/LZMA2 algorithm by https://www.7-zip.org/sdk.html

License:GNU Lesser General Public License v3.0


Languages

Language:Go 100.0%