Skip to content

PJA 0.6.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 01:27
· 130 commits to main since this release

Stream version 7 comes to the zpaq-std plugin. The pja command and libpja are the same as in 0.5.3.

  • Four new codecs, frozen. pja7 and pjax7 take what pja and pjax take and write stream version 7, the model the command has used since 0.1.0. pja7z and pjax7z are their z twins, for blocks that go through zpaq's LZ77. Each comes with its ZPAQL decoder (35,104 to 35,987 bytes), so plain zpaq still extracts the archive without the plugin. The four are frozen for zpaq-std 2.1.0: their streams and ZPAQL never change under these names. zpaq-std users still write -sa or -sa:pja; the new names only show in listings and in -sat.
  • Smaller and faster. zpaq-std measured them through its whole path (-sa -t8) against its 2.0.3: photos -3.1%, corpus -2.4%, MPO -1.0%, arithmetic-coded -3.1%, generated -2.6%. Writing is 1.3 to 1.6 times as fast, extracting 1.2 to 1.6 times, and zpaq 7.15 with the new ZPAQL 1.5 to 1.6 times (151 photos: 191 -> 121 s). Every file comes back, natively and with zpaq 7.15, with the smallest window as well. zpaq-std's CI built the plugin on six platforms and wrote the same archive on every one.
  • The plugin now links C. Version 7's model is C (pjav7c.c), so building the plugin needs a C compiler next to FreePascal. The C calls no library: the Windows DLL imports the same system DLLs as before. VENDOR.md in pja-0.6.0-zpaqstd.tar.gz has the commands for each platform.
  • What stays the same. Codecs 0 to 9, their streams and their ZPAQL are unchanged, so every archive written before opens as it did.

Downloads

platform the pja command the zpaq-std plugin libpja (C library, 7-Zip plugin)
Linux x86-64 pja-0.6.0-linux-x86_64.tar.gz pja-0.6.0-zpaqstd-plugin-linux-x86_64.tar.gz pja-0.6.0-lib-linux-x86_64.tar.gz
Linux x86 (32-bit) pja-0.6.0-linux-x86.tar.gz pja-0.6.0-zpaqstd-plugin-linux-x86.tar.gz pja-0.6.0-lib-linux-x86.tar.gz
Linux arm64 pja-0.6.0-linux-arm64.tar.gz pja-0.6.0-zpaqstd-plugin-linux-arm64.tar.gz pja-0.6.0-lib-linux-arm64.tar.gz
macOS arm64 pja-0.6.0-macos-arm64.tar.gz pja-0.6.0-zpaqstd-plugin-macos-arm64.tar.gz pja-0.6.0-lib-macos-arm64.tar.gz
Windows x64 (7 and later) pja-0.6.0-windows-x64.zip pja-0.6.0-zpaqstd-plugin-windows-x64.zip pja-0.6.0-lib-windows-x64.zip
Windows x86 (XP and later) pja-0.6.0-windows-x86.zip pja-0.6.0-zpaqstd-plugin-windows-x86.zip pja-0.6.0-lib-windows-x86.zip

pja-0.6.0-zpaqstd.tar.gz holds the plugin's sources as zpaq-std vendors them, with VENDOR.md. CI builds and checks every binary on its own platform (.github/workflows/release.yml); libpja is checked with its C test and, on Linux x86-64, through a real 7-Zip. SHA256SUMS has the checksums. The Linux builds need glibc 2.34 or later. The macOS ones are not signed: run xattr -d com.apple.quarantine after unpacking.