mkhpack has no runtime dependencies beyond the C standard library. The
shared library (libmkhpack.so) is self-contained.
| Name | Purpose |
|---|---|
| GCC | C compiler (path configured in Makefile.inc) |
| GNU Make | Build orchestration |
| Ruby | Code generation — runs huffman_codes.rb to produce src/huffman_codes.inc |
| ar | Creates the static library (libmkhpack.a) |
| Name | Version | Purpose |
|---|---|---|
debhelper-compat |
= 13 | Debian build helper framework |
ruby |
any | Huffman table generation during build |
build-essential |
any | GCC, make, and related tools (meta-package) |
| Name | Purpose |
|---|---|
gcc |
C compiler |
make |
Build orchestration |
ruby |
Huffman table generation during build |
The release workflow (release.yml) installs these packages on ubuntu-latest:
build-essentialdebhelperrubyThe GitHub Pages workflow (update-pages.yml) additionally requires:
ruby/setup-ruby@v1)gh-pages branch GemfileTests are written using a custom harness (test/common.{c,h}) with no external
test framework.
Benchmarks use one of two timing harnesses, both included in the repository:
benchmark-custom.c — uses the x86 RDTSC instruction (default)benchmark-gettime.c — uses POSIX clock_gettimeNo external benchmark libraries are required.
| Name | Purpose |
|---|---|
pkg-config |
Optional; consumers use it to discover compiler/linker flags |
sed |
Used by Makefile to generate lib/mkhpack.pc from template |
ln |
Used by Makefile to create shared library symlinks |