Installation
Install the tatami CLI from a package manager, a prebuilt binary, Go, or the container image, and add the library to a Go module.
tatami ships as a single static binary with no runtime dependencies, and as a Go library. Pick whichever fits.
Homebrew (macOS and Linux)
brew install tamnd/tap/tatami
Scoop (Windows)
scoop bucket add tamnd https://github.com/tamnd/scoop-bucket
scoop install tatami
Prebuilt binary
Every release publishes archives for Linux, macOS, Windows, and FreeBSD on both amd64 and arm64, along with .deb, .rpm, and .apk packages, checksums, SBOMs, and a cosign signature. Download the one for your platform from the releases page, unpack it, and put the tatami binary on your PATH.
On a Debian or Ubuntu machine:
curl -LO https://github.com/tamnd/tatami/releases/latest/download/tatami_<version>_linux_amd64.deb
sudo dpkg -i tatami_<version>_linux_amd64.deb
Go install
With a Go toolchain (1.24 or newer):
go install github.com/tamnd/tatami/cmd/tatami@latest
This puts tatami in $(go env GOPATH)/bin.
Container image
A multi-arch image is published to the GitHub Container Registry:
docker run --rm -v "$PWD:/data" ghcr.io/tamnd/tatami:latest inspect /data/shard.tatami
The Go library
tatami is a library first; the CLI is a thin wrapper over it. Add it to a module:
go get github.com/tamnd/tatami
The format library itself is dependency-free apart from the zstd codec. The convert package, which reads Parquet, is the only part that pulls in parquet-go, so a program that only writes and reads .tatami files stays lean.
Verify
tatami --version
Next: the quick start.