- ADBC Drivers
- GizmoSQL
The GizmoSQL ADBC driver
A Go-powered native driver for GizmoSQL, over Apache Arrow Flight SQL. OAuth/SSO, automatic DDL/DML detection, and connection profiles — the same core across Python, Go, R, Rust, C#, C/C++, and JavaScript.
One core, every language
A single Go-based native driver reaches Python, Go, R, Rust, C#, C/C++, and JavaScript — with a thin, drop-in-compatible Python wrapper on top.
OAuth / SSO built in
Authenticate through any OIDC provider (Google, Okta, Entra ID) against a GizmoSQL Enterprise server — every session maps to a named user.
Automatic DDL/DML detection
The driver routes statements correctly without you flagging query vs. update, so ORMs and tools just work over Arrow Flight SQL.
One C API. Every language.
The examples on this page are in Python, but ADBC exposes each driver as a C-compatible shared library — so the same native core works from Go, Rust, Java, C#, C/C++, JavaScript, and more. One driver, every stack.
Get started
Install the driver and connect to your GizmoSQL server — results stream back as Apache Arrow, ready for pandas, Polars, or DuckDB.
1# pip install adbc-driver-gizmosql
2import adbc_driver_gizmosql.dbapi as gizmosql
3
4with gizmosql.connect(
5 "gizmosql://gizmosql.example.com:31337", # TLS by default; ?transport=tcp for plaintext
6 username="user",
7 password="...",
8) as conn, conn.cursor() as cur:
9 cur.execute("SELECT * FROM sales ORDER BY amount DESC LIMIT 10")
10 for row in cur.fetchall():
11 print(row)Sign in with SSO, then load data
Against a GizmoSQL Enterprise server the driver authenticates through your OIDC provider, and bulk ingest streams Arrow straight into a table.
OAuth / SSO
1# OAuth / SSO — authenticate through your OIDC provider (Enterprise)
2import adbc_driver_gizmosql.dbapi as gizmosql
3
4# auth_type="external" runs the browser SSO flow against the GizmoSQL server
5with gizmosql.connect(
6 "gizmosql://gizmosql.example.com:31337",
7 auth_type="external",
8) as conn, conn.cursor() as cur:
9 cur.execute("SELECT GIZMOSQL_USER()") # the authenticated user
10 print(cur.fetchone())Bulk ingest
1# Automatic DDL/DML detection + bulk ingest — load Arrow straight into GizmoSQL
2import pyarrow as pa
3import adbc_driver_gizmosql.dbapi as gizmosql
4
5table = pa.table({"id": [1, 2, 3], "name": ["alice", "bob", "carol"]})
6with gizmosql.connect(uri, username="token", password=token) as conn, conn.cursor() as cur:
7 cur.adbc_ingest(table_name="customers", data=table, mode="create_append")
8 conn.commit()One driver, a whole ecosystem
The adbc-driver-gizmosql core is what powers GizmoSQL’s tool integrations — the same native driver runs under all of them.
GizmoSQL ADBC driver — FAQ
What database does the GizmoSQL ADBC driver connect to?
GizmoSQL — the open-source Apache Arrow Flight SQL server powered by DuckDB. It streams results as Arrow record batches over gRPC, and adds GizmoSQL-specific capabilities like OAuth/SSO and automatic DDL/DML detection.
Is it compatible with the old Python driver?
Yes. Version 2.x is a Go-based rewrite with a thin Python wrapper, and the PyPI package name (adbc-driver-gizmosql) and API are byte-compatible with 1.x — upgrading is a one-line pip command.
What languages can I use it from?
The native Go core is exposed as an ADBC c-shared library, usable from Python, Go, R, Rust, C#, C/C++, and JavaScript. The Python package is the most common entry point.
Does it support connection profiles?
Yes — reusable TOML profiles bundle your server URI and options with environment-variable substitution, so credentials stay out of your code and you switch environments by changing one profile name.
Is it free?
Yes, the driver is open source. GizmoSQL Core (the server) is Apache-2.0 and free; Enterprise adds SSO/OAuth, permissions, and instrumentation at $300/vCPU/year.