Skip to content

Get started

Installation

Install the command, build it from source, or add the library to a Rust project.

bagkit is a single executable with SQLite compiled in, so it needs no database server or system libraries.

On macOS and Linux:

curl -fsSL https://dstotijn.github.io/bagkit/install.sh | sh

The script downloads the latest release for your platform, verifies its SHA-256 checksum and installs it to ~/.local/bin. Set BAGKIT_VERSION to pin a release, such as v0.1.0, and BAGKIT_INSTALL_DIR to install elsewhere:

curl -fsSL https://dstotijn.github.io/bagkit/install.sh | BAGKIT_VERSION=v0.1.0 BAGKIT_INSTALL_DIR=/opt/bin sh

Release binaries cover macOS and Linux on arm64 and x86_64, and Windows on x86_64; the Linux binaries are statically linked. On Windows, download bagkit-x86_64-pc-windows-msvc.zip from the releases page and put bagkit.exe on your PATH.

Feature Adds Default
sqlite SQLite output, lookups and the spatial index yes
parquet Parquet and GeoParquet output yes
server The HTTP lookup server yes
cli The bagkit command yes
  • Memory: a full national conversion peaks at about 1 GiB.
  • Disk: room for the 3.6 GB extract, the output (up to 6 GiB for SQLite), and a second copy of the output while it replaces an existing one. SQLite sorts spill to temporary files, and so do ZIPs nested more than one level deep that are larger than 64 MiB; the national extract has none.
  • CPU: every core is used by default; --threads limits that.