Download raw body.
[NEW] mkz - archivers/mkz 0.1.0- a reversible columnar pre-pass + zstd archiver
[NEW] mkz - archivers/mkz 0.1.0- a reversible columnar pre-pass + zstd archiver
On 2026/07/06 12:39, Matt Klein wrote:
> Hello,
> Please find Attached, a new port archivers/mkz that I published at:
> https://github.com/gitspoked/mz called `mkz` and also in rust/crates.rio.
> I am looking to push to ports.
>
> TLDR: `mkz` is a tar-style archiver whose backend is a reversible, schema-free
> auto-columnar transform (autocol) followed by zstd. It is not a new
> compressor: the transform reshapes line-oriented data (logs, CSV, JSONL)
> so zstd sees per-column-homogeneous streams. Its product is measurably
> smaller on that kind of data, and behind a per-block never-worse gate.
> Provably never larger than zstd alone. Archives carry an end-to-end SHA-256,
> verified on extract.
>
> This is a pure-C upstream build: six C files, depends on libzstd only;
> we have vendored SHA-256 and base-95. It is byte-compatible in both
> directions with the Rust reference implementation, and the wire format
> is specified: https://github.com/gitspoked/mkz/blob/main/FORMAT.md
>
> Tested on 7.9/arm64: distinfo reproduces from the hosted release
> tarball via the the framework fetch; make / make fake / make package /
> make test upstream's three test programs --
> port-lib-depends-check all clean; portcheck clean.
> - attached: mkz-obsd-port.tgz. digest 9a7fe784…
> - exact tarball was revalidated
>
> The C port was made from the Rust implementation with an OpenBSD first-target
> I know how vigorously accountable you hold security standards to
> within this circle.
> I figured, before I submitted to any other ports trees, why not see if
> we can break it
> apart here first, to be sure.
>
> I am upstream and listed on MAINTAINER; I am happy to take feedback and
> keep the port current. Please let me know if you have any questions. Thx
>
> Thank you,
> Matt Klein
> mk@ntele.net
> mklein@nmedia.net
: # mkz is dual-licensed MIT OR Apache-2.0.
: PERMIT_PACKAGE = Yes
ports Makefiles aren't meant to be chatty; just use
# MIT OR Apache-2.0
PERMIT_PACKAGE = Yes
: # Links libc and libzstd only (SHA-256 and base-95 are vendored).
I'd drop that too
: WANTLIB = c zstd
:
: SITES = https://github.com/gitspoked/mkz/releases/download/v${V}/
:
: # The release tarball extracts to mkz-c/ (the pure-C tree), not ${DISTNAME}/.
: WRKSRC = ${WRKDIR}/mkz-c
should be WRKDIST not WRKSRC
also needs FIX_EXTRACT_PERMISSIONS = Yes due to restrictive file modes
in the tar
: LIB_DEPENDS = archivers/zstd
:
: # Plain handful of C files - no configure, and no GNU make needed
: # for the port build.
it's simpler for upgrades if you use the standard project's build/test/
install infrastructure, which isn't hard to do, and needs no additional
deps.
PLIST should be generated with "make plist" (which adds annotations to
binaries, amongst other things).
not a big fan of the asciified em-dashes in DESCR.
suggested alternative tgz attached.
[NEW] mkz - archivers/mkz 0.1.0- a reversible columnar pre-pass + zstd archiver
[NEW] mkz - archivers/mkz 0.1.0- a reversible columnar pre-pass + zstd archiver