Skip to content

PJA 0.9.7

Choose a tag to compare

@github-actions github-actions released this 07 Nov 07:15
· 6 commits to main since this release

The flush beside the work.

  • Faster writes, as safe. Since 0.9.5 every output reaches the disk before it takes its name (a power cut leaves the old file or the whole new one). That flush waits on the disk: about 16 ms a file on a SATA SSD, 4.9 s of the 37 s pja x -th 1 took on 151 photos. pja a and pja x now hand each file's write (flush, rename, the directory's flush) to a thread of their own and go on with the next file: 151 photos extracted on one thread 40.7 s → 36.2 s. The same files, lines in the same order, --json and exit code; the run ends only when every write has. Not with --no-sync, -n or --stats; PJA_SYNC_INLINE=1 writes inline as before.
  • Nothing else changes: the same .pja files, streams, and the 31 zpaq-std codecs with their ZPAQL (the plugin is 0.9.6's but for its version number). The 7-Zip plugin reports 0.97.
  • Checked: every suite on native and 32-bit with the same stream hashes; CI on all six platforms; Windows 10 (pja.exe selftest 42/42, 172 files back byte for byte with and without the write thread, the same lines).
  • Benchmarks in the README and the wiki are now measured with zpaq-std 2.6.0, which ships PJA 0.9.6 with pja2k in its -sa: JPEG 2000 in a zpaq archive 92.51% of its size.

Downloads

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

pja-0.9.7-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.