pgx
PGX — Lightweight Postgres for AI agents. Written in Rust. Thousands of isolated databases in one runtime. 🐘
Translation pending
GizmoSQL is an enterprise, terabyte-scale OLAP SQL engine powered by Apache Arrow Flight SQL and DuckDB. Ideal for LLM and AI agent workloads — a shared SQL server for multi-agent workflows. Process b
DataC++ · SwiftGitHub @gizmodataOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
🚀 GizmoSQL — High-Performance Database Server
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗[!IMPORTANT] GizmoSQL is in maintenance mode. Please use Hardcharger going forward. See the Hardcharger documentation to get started.
GizmoSQL is a lightweight, high-performance SQL server built on:
Originally forked from sqlflite — and now enhanced into a more extensible, production-ready platform under the Apache 2.0 license.
GizmoSQL is available in two editions:
| Feature | Core | Enterprise |
|---|---|---|
| DuckDB & SQLite backends | ✅ | ✅ |
| Arrow Flight SQL protocol | ✅ | ✅ |
| TLS & mTLS authentication | ✅ | ✅ |
| JWT token authentication | ✅ | ✅ |
| Query timeout | ✅ | ✅ |
| Session Instrumentation | ❌ | ✅ |
| Prometheus Metrics Endpoint & SQL Metrics | ❌ | ✅ |
| Kill Session | ❌ | ✅ |
| Per-Catalog Permissions | ❌ | ✅ |
| SSO/OIDC Authentication (JWKS) | ❌ | ✅ |
| Authorized Email Filtering | ❌ | ✅ |
| Statement Queuing | ❌ | ✅ |
GizmoSQL Core is free and open source under the Apache 2.0 license.
GizmoSQL Enterprise requires a commercial license. Contact [email protected] for licensing information.
For more details, see the Editions documentation.
Runtime metrics require the metrics license feature and are disabled by
default. See the monitoring guide for enablement, the
configurable HTTP port/bind address, SQL access, and Prometheus/Grafana setup.
| Component | Version |
|---|---|
| DuckDB | v1.5.6 (stable) · v1.4.5 (LTS) · v2.0.0 (edge — experimental, not for production) |
| SQLite | 3.53.4 |
| Apache Arrow (Flight SQL) | 26.0.0 |
| jwt-cpp | v0.7.2 |
| OpenTelemetry C++ | v1.29.0 |
| nlohmann/json | v3.12.0 |
For detailed instructions and configuration information, see our full documentation:
Default credentials: The server's default username is
gizmosql_user(override with--usernameorGIZMOSQL_USERNAME). A password is always required via--passwordorGIZMOSQL_PASSWORD.
# Username defaults to "gizmosql_user" when GIZMOSQL_USERNAME is not set
docker run --name gizmosql \
--detach \
--rm \
--tty \
--init \
--publish 31337:31337 \
--env TLS_ENABLED="1" \
--env GIZMOSQL_PASSWORD="gizmosql_password" \
--env PRINT_QUERIES="1" \
--pull always \
gizmodata/gizmosql:latest
duckdb ./tpch_sf1.duckdb << EOF
INSTALL tpch; LOAD tpch; CALL dbgen(sf=1);
EOF
docker run --name gizmosql \
--detach \
--rm \
--tty \
--init \
--publish 31337:31337 \
--env TLS_ENABLED="1" \
--env GIZMOSQL_PASSWORD="gizmosql_password" \
--pull always \
--mount type=bind,source=$(pwd),target=/opt/gizmosql/data \
--env DATABASE_FILENAME="data/tpch_sf1.duckdb" \
gizmodata/gizmosql:latest
brew tap gizmodata/tap
brew trust gizmodata/tap
brew install gizmosql
Note: Homebrew 6.0 (June 2026) requires third-party taps to be explicitly trusted before formulae can be installed from them — hence the
brew truststep. On older Homebrew versions the command doesn't exist; simply skip it. Alternatively,brew install gizmodata/tap/gizmosqlinstalls with a one-off trust for just this formula.
Supported platforms:
Then run the server (username defaults to gizmosql_user):
GIZMOSQL_PASSWORD="gizmosql_password" gizmosql_server --database-filename your.duckdb --print-queries
Download the latest MSI installer from the GitHub Releases page — GizmoSQL-amd64.msi for x64 machines, or GizmoSQL-arm64.msi for Windows on Arm (e.g. Snapdragon X-class devices). The installer adds gizmosql_server.exe and gizmosql_client.exe to C:\Program Files\GizmoSQL and updates the system PATH.
Then run the server from PowerShell or Command Prompt:
$env:GIZMOSQL_PASSWORD="gizmosql_password"
gizmosql_server --database-filename your.duckdb --print-queries
GizmoSQL is available as a native iOS app on the Apple App Store — run a full GizmoSQL server right on your iPhone or iPad.
The iOS edition bundles the DuckDB engine and the Arrow Flight SQL server, so any GizmoSQL client (JDBC, ADBC, CLI, UI, etc.) can connect to it over your local network.
[!IMPORTANT] The iOS app is intended for development, learning, demos, and local prototyping — not production workloads. iOS enforces aggressive background execution limits, memory caps, and network/thermal throttling that make a phone or tablet unsuitable for hosting production SQL traffic. For production, run GizmoSQL via Docker, Kubernetes, Homebrew, or the native Linux/macOS/Windows binaries.
Use with DBeaver or other JDBC clients:
jdbc:gizmosql://localhost:31337?useEncryption=true&user=gizmosql_user&password=gizmosql_password&disableCertificateVerification=true
More info: Setup guide
Prerequisite: Python 3.10+ and the GizmoSQL ADBC driver:
pip install adbc-driver-gizmosql
As of v2.0, the driver is powered by the native Go GizmoSQL ADBC driver
— same Python API, with DDL/DML immediate execution, RETURNING support,
gizmosql:// URIs, and OAuth/SSO provided by a shared driver library that
also serves Go, C/C++, R, and other ADBC languages. The driver supports
OAuth/SSO authentication for GizmoSQL Enterprise users.
from adbc_driver_gizmosql import dbapi as gizmosql
with gizmosql.connect(
"gizmosql://localhost:31337", # TLS by default; legacy grpc+tls:// also works
username="gizmosql_user",
password="gizmosql_password",
tls_skip_verify=True, # Not needed if you use a trusted CA-signed TLS cert
) as conn:
with conn.cursor() as cur:
cur.execute(
"SELECT n_nationkey, n_name FROM nation WHERE n_nationkey = ?",
parameters=[24],
)
x = cur.fetch_arrow_table()
See: https://github.com/gizmodata/generate-gizmosql-token for an example of how to generate a token and use it with GizmoSQL.
GizmoSQL ships with an interactive SQL shell inspired by psql and the DuckDB CLI:
# Interactive session
GIZMOSQL_PASSWORD="gizmosql_password" gizmosql_client --host localhost --username gizmosql_user --tls --tls-skip-verify
Run a single query with --command:
GIZMOSQL_PASSWORD="gizmosql_password" gizmosql_client \
--host localhost --username gizmosql_user --tls --tls-skip-verify \
--command "SELECT version()"
Pipe SQL from a heredoc:
GIZMOSQL_PASSWORD="gizmosql_password" gizmosql_client \
--host localhost --username gizmosql_user --tls --tls-skip-verify --quiet <<'EOF'
SELECT n_nationkey, n_name
FROM nation
WHERE n_nationkey = 24;
EOF
More info: Client Shell documentation
git clone https://github.com/gizmodata/gizmosql --recurse-submodules
cd gizmosql
cmake -S . -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build --target install
Then run:
GIZMOSQL_PASSWORD="..." gizmosql_server --database-filename ./data/your.db --print-queries
INIT_SQL_COMMANDS or INIT_SQL_COMMANDS_FILE# DuckDB (default)
gizmosql_server -B duckdb --database-filename data/foo.duckdb
# SQLite
gizmosql_server -B sqlite --database-filename data/foo.sqlite
[!TIP] You can now use the:
--query-timeoutargument to set a maximum query timeout in seconds for the server. Queries running longer than the timeout will be killed. The default value of:0means "unlimited". Example:gizmosql_server (other args...) --query-timeout 10will set a timeout of 10 seconds for all queries.
[!TIP] The health check query can be customized using
--health-check-queryor theGIZMOSQL_HEALTH_CHECK_QUERYenvironment variable. The default isSELECT 1. This is useful when you need a more specific health check for your deployment. Example:gizmosql_server (other args...) --health-check-query "SELECT 1 FROM my_table LIMIT 1"
💡 On Azure VM Standard_E64pds_v6 (~$3.74/hr):
🏁 Speed for the win. Performance for pennies.
GizmoSQL Core is licensed under the Apache License, Version 2.0.
Enterprise features (in src/enterprise/) are proprietary and require a commercial license from GizmoData LLC. See src/enterprise/LICENSE for details.
Want to contribute code? See CONTRIBUTING.md for setup, formatting, linting, clang-tidy, tests, and the checks required by CI.
Join the GizmoData Community Slack to ask questions, share what you're building, and get help from the team and other users:
👉 Join the GizmoData Community on Slack
Questions or consulting needs?
📧 [email protected]
🌐 https://gizmodata.com
Built with ❤️ by GizmoData™