lhasa
the free LHA / LZH /
PMarc decoder, distributed as a single
self-contained static binary.
Install on macOS / Linux / Windows See the four commands
~200 KB static binary · zero
libc / zlib / libiconv
on any Linux, macOS, or Windows.
What is lhasa?
Lhasa is an ISC-licensed library + CLI for reading
.lzh (LHA) and .lzs / .pma
archives. It is intentionally decoder-only — creating
.lzh archives remains the job of the original
(non-free) lha binary built from upstream
jca02266/lha.
lhasa (the library, liblhasa) is
embeddable in C applications: file managers add it for LZH
preview; CDNs and archives use it to surface .lzh
content on demand. The CLI binary lhasa ships is named
lha — the project deliberately mirrors the
original LHa for UNIX command so legacy toolchains that call
lha x archive.lzh keep working transparently.
Why lhasa exists (one paragraph)
jca02266/lha
(the maintained LHa for UNIX 1.14i tree) carries a
custom redistribution license in its man page — it
permits source redistribution with attribution but
requires contacting the original maintainers before
binary-only redistribution. For most of the 1990s this wasn't
a problem because Linux distributions shipped the binary
directly. After Debian phased the package out of
non-free in 2012 in favor of a FOSS decoder,
fragglet/lhasa (started 2011 by Simon Howard, ISC) became
the standard FOSS replacement. lhasa reads every variant the
original lha writes (lh0..lh7, lhx, lzs, pma) but cannot
create new .lzh archives — that remains a
job for the original lha source build.
ljh-sh/lhasa
takes the ISC source and ships it as a single static binary for
platforms where upstream fragglet/lhasa only
publishes source tarballs + Windows prebuilts — i.e. for
Linux and macOS users who want a one-line install without a
build step.