Skip to content

GizmoSQL LTS Channel

GizmoSQL ships in three parallel release channels that share the same GizmoSQL feature set and only differ in which DuckDB release is bundled:

Channel DuckDB tracked When to pick it
Stable Latest DuckDB minor (e.g. v1.5.6) You want every new DuckDB feature, type, and performance improvement on its normal cadence.
LTS Most recent DuckDB LTS (e.g. v1.4.5) You need a slower-moving, longer-supported DuckDB engine — production deployments where the underlying database's stability guarantees matter more than new features.
Edge Next DuckDB major, pre-release (e.g. v2.0.0-alpha43763) Experimental — not for production workloads. You want to evaluate the next DuckDB major before it ships. See the Edge Channel guide.

All channels get every GizmoSQL fix, feature, and quality-of-life improvement at the same time. Choosing LTS or edge only changes which DuckDB version is statically linked into the binary; the GizmoSQL CLI flags, library API, configuration, authentication, and protocol behavior are identical. (Edge does inherit the next DuckDB major's own SQL and storage-format changes — see its guide.)

Which DuckDB versions are LTS?

DuckDB designates LTS releases on its own schedule. The authoritative list (with LTS windows, end-of-support dates, and what counts as "current LTS") lives at:

➡️ https://duckdb.org/release_calendar

When DuckDB names a new LTS, GizmoSQL bumps DUCKDB_LTS_VERSION in CMakeLists.txt and the next GizmoSQL release ships the new LTS pin alongside a stable build. Until then, the LTS channel stays on the previous LTS even as the stable channel moves forward.

Telling the channels apart

The LTS server identifies itself in four ways so it's never ambiguous which build is running:

1. The --version flag on both the server and the client binaries

$ gizmosql_server_lts --version
GizmoSQL Server CLI: v1.25.0-LTS

$ gizmosql_client_lts --version
GizmoSQL Client v1.25.0-LTS

The server also exposes --print-duckdb-version, which prints just the version of the linked DuckDB library and exits — the clearest channel discriminator, since the stable and LTS channels pin different DuckDB releases:

$ gizmosql_server --print-duckdb-version
v1.5.6

$ gizmosql_server_lts --print-duckdb-version
v1.4.5

2. The startup banner

INFO ... GizmoSQL server version: v1.25.0-LTS - with engine: DuckDB (LTS channel — DuckDB v1.4.5) - will listen on grpc+tcp://0.0.0.0:31337

3. The GIZMOSQL_VERSION() SQL function — query it from any client (JDBC, ADBC, gizmosql_client, etc.) to confirm which channel the server you connected to was built from:

SELECT GIZMOSQL_VERSION();
-- v1.25.0-LTS    (when connected to an LTS server)
-- v1.25.0        (when connected to a stable server)

4. The .about / .info dot-commands and the interactive shell banner in gizmosql_client_lts all carry the suffix.

The -LTS suffix is also reflected in OpenTelemetry service.version, the gizmosql_version column on session-instrumentation records, and any other place the server reports its version — so a single string lets you tell at a glance which channel produced any log line, span, or audit row.

Artifact naming

LTS artifacts are suffixed so they coexist with stable on the same machine, image registry, or download index:

Type Stable LTS
Server binary gizmosql_server gizmosql_server_lts
Client binary gizmosql_client gizmosql_client_lts
CLI zip gizmosql_cli_<os>_<arch>.zip gizmosql_cli_<os>_<arch>_lts.zip
Windows MSI GizmoSQL-<arch>.msi (amd64, arm64) GizmoSQL-<arch>-lts.msi (amd64, arm64)
Docker (Hub) gizmodata/gizmosql:<ver> (+ -slim) gizmodata/gizmosql-lts:<ver> (+ -slim)
Docker (GHCR) ghcr.io/gizmodata/gizmosql:<ver> ghcr.io/gizmodata/gizmosql-lts:<ver>
Homebrew formula gizmodata/tap → gizmosql gizmodata/tap → gizmosql-lts (same tap)

iOS: The iOS edition is currently stable-only. The DuckDB LTS pin is not synced for the iOS extension build matrix.

Installing GizmoSQL LTS

Homebrew (macOS / Linux)

The LTS formula lives in the same gizmodata/tap as the regular gizmosql formula — no separate tap to add:

brew tap gizmodata/tap         # once (skip if already tapped)
brew trust gizmodata/tap       # once (Homebrew 6.0+; skip on older versions)
brew install gizmosql-lts      # LTS channel
# or, side-by-side:
brew install gizmosql gizmosql-lts

The LTS formula installs gizmosql_server_lts / gizmosql_client_lts, so it coexists cleanly with the regular gizmosql formula's gizmosql_server / gizmosql_client.

Docker

# Full image
docker pull gizmodata/gizmosql-lts:latest

# Slim image (no extras / smaller surface area)
docker pull gizmodata/gizmosql-lts:latest-slim

Pin a specific GizmoSQL version with gizmodata/gizmosql-lts:v1.24.0.

Direct download

Download the LTS zip / MSI for your platform from the GitHub Releases page. The LTS files have an _lts (zip) or -lts (MSI) suffix in the filename.

Windows MSI

Each channel's MSI is its own Windows product, so stable, LTS and edge install side by side and upgrade independently:

Channel MSI Shows in Installed apps as Installs to Binaries
Stable GizmoSQL-<arch>.msi GizmoSQL C:\Program Files\GizmoSQL gizmosql_server.exe, gizmosql_client.exe
LTS GizmoSQL-<arch>-lts.msi GizmoSQL LTS C:\Program Files\GizmoSQL LTS gizmosql_server_lts.exe, gizmosql_client_lts.exe
Edge GizmoSQL-<arch>-edge.msi GizmoSQL Edge (experimental) C:\Program Files\GizmoSQL Edge gizmosql_server_edge.exe, gizmosql_client_edge.exe

Each MSI adds its own folder to the system PATH; the channel suffix on the LTS and edge binaries keeps them from shadowing each other.

Upgrading an LTS MSI install from GizmoSQL v1.40.0 or earlier: those LTS MSIs were registered as the stable product ("GizmoSQL", in C:\Program Files\GizmoSQL, with unsuffixed binaries), so the new LTS MSI installs next to them instead of replacing them. Uninstall "GizmoSQL" from Installed apps first if that install was LTS — otherwise the next stable MSI would upgrade it to the stable channel.

Building from source

The LTS channel is a CMake build option:

cmake -B build -DGIZMOSQL_DUCKDB_CHANNEL=lts
cmake --build build

Override the LTS version pin with -DDUCKDB_LTS_VERSION=v1.4.4 if you need a specific point release.

The default (stable) is unchanged: cmake -B build produces the regular gizmosql_server / gizmosql_client binaries with no -LTS markers.

Switching channels in production

Because the server protocol and on-disk formats are stable across DuckDB minor releases (within DuckDB's own compatibility commitments — see the release calendar), you can switch a deployment from stable to LTS by replacing the binary / image and restarting:

  1. Stop the running gizmosql_server.
  2. Replace it with gizmosql_server_lts (or pull the gizmodata/gizmosql-lts image).
  3. Start it the same way — same flags, same env vars, same database files.

GizmoSQL session tokens, instrumentation records, and the database file all carry forward. (Always test on a non-production deployment first, especially across DuckDB major versions.)

License

The LTS channel ships under the same Apache 2.0 / Commercial dual-license model as the stable channel, and the same Enterprise license file works against both — see the Editions page.