Back to Blog
    Release
    Philip Moore
    July 29, 2026
    8 min read

    GizmoSQL ADBC Driver 2.0: A Go-Powered Core That Brings GizmoSQL to Every ADBC Language

    The GizmoSQL ADBC driver has been rebuilt from the ground up in Go — with a thin Python wrapper that stays drop-in compatible with 1.x. One native driver now brings OAuth/SSO, automatic DDL/DML detection, and the rest of the GizmoSQL goodies to Python, Go, R, Rust, C#, C/C++, and JavaScript.

    ADBC
    Go
    Python
    Arrow Flight SQL
    GizmoSQL
    OAuth
    Release
    GizmoSQL ADBC Driver 2.0: Go-powered core, every ADBC language

    Today we're shipping version 2.0 of the GizmoSQL ADBC driver — the biggest change to GizmoSQL's client story since the driver first launched. The driver core has been rewritten in Go and compiles to a native shared library, with the Python package you already know reduced to a thin wrapper on top. Same features, same API — but now any language with an ADBC driver manager gets the full GizmoSQL experience, not just Python.

    The new home for the project is github.com/gizmodata/gizmosql-adbc. The previous Python-only 1.x repository (adbc-driver-gizmosql) has been archived — but don't worry, the PyPI package name is unchanged and 2.0 is designed as a drop-in upgrade.

    Why rewrite it in Go?

    The 1.x driver was a Python library. It worked great — OAuth/SSO browser flows, automatic DDL/DML routing, connection profiles — but every one of those features lived in Python code, which meant they were only available to Python users. Anyone connecting from Go, R, Rust, or C# fell back to the generic Flight SQL driver and lost the GizmoSQL-specific behavior.

    ADBC's architecture offers a better way: implement the driver once as a native shared library, and let every language load it through the ADBC driver manager. Go is the natural fit — it's what the upstream Apache Arrow ADBC Flight SQL driver is built in, it cross-compiles cleanly to every platform GizmoSQL supports, and it produces a single self-contained library with no runtime dependencies.

    So that's what 2.0 is: one Go core, every language. Python, Go, R, C/C++, C#, Rust, and JavaScript all load the same driver and get the same behavior.

    The GizmoSQL goodies — now everywhere

    Everything that made the 1.x Python driver more pleasant than a generic Flight SQL connection now lives in the shared core:

    • OAuth / SSO authentication — external identity-provider auth with a browser flow for interactive use and a headless mode for CI and services. Sign in with your company IdP instead of passing passwords around.
    • Automatic DDL/DML detectionCREATE, INSERT, UPDATE, DELETE, and friends are auto-detected and routed through Flight SQL's DoPut path for immediate server-side execution — no more wondering why your DDL "query" returned an empty result set.
    • RETURNING supportINSERT / UPDATE / DELETE ... RETURNING results are eagerly materialized and handed back to you like any other result set.
    • The gizmosql:// URI scheme — a clean connection URI with TLS on by default.
    • ADBC connection profiles — the reusable TOML profiles introduced in 1.2.0 carry forward, with environment-variable substitution keeping credentials out of your code.
    • Bulk ingest — high-throughput, geometry-preserving loads via cursor.adbc_ingest.
    • OpenTelemetry observability — tracing and logging inherited from the upstream Flight SQL driver foundation.

    Python: same package, drop-in upgrade

    The Python package keeps its name on PyPI, and the 2.x API is byte-compatible with the 1.x driver — your existing code keeps working:

    pip install --upgrade adbc-driver-gizmosql
    1from adbc_driver_gizmosql import dbapi as gizmosql
    2
    3with gizmosql.connect("gizmosql://localhost:31337",
    4                      username="gizmosql_username",
    5                      password="gizmosql_password") as conn:
    6    with conn.cursor() as cur:
    7        cur.execute("SELECT 42 AS answer")
    8        print(cur.fetch_arrow_table())

    Under the hood, the wheel now bundles the Go-built shared library for your platform and loads it through the ADBC driver manager — but from your code's point of view, nothing changed.

    Go: a first-class native client

    Go developers get a real driver of their own, versioned independently via go/vX.Y.Z tags:

    go get github.com/gizmodata/gizmosql-adbc/go@latest
    drv := gizmosql.NewDriver(memory.DefaultAllocator)
    db, err := drv.NewDatabase(map[string]string{
        "uri":      "gizmosql://localhost:31337",
        "username": "gizmosql_username",
        "password": "gizmosql_password",
    })

    Everything else: the driver manager

    For R, Rust, C#, C/C++, and JavaScript, install the shared library and reference it from your language's ADBC driver manager with driver="gizmosql". One driver definition, one set of behaviors, every runtime.

    The whole client ecosystem moved with it

    A driver rewrite is only useful if the tools you actually use come along. As of today, the full family of GizmoSQL client packages and utilities has been updated to the 2.0 driver:

    If you're using any of these, just upgrade the package — the new driver comes along for the ride.

    Upgrading from 1.x

    For Python users: pip install --upgrade adbc-driver-gizmosql. That's it. The API is compatible, connection profiles carry over, and grpc+tls:// URIs keep working alongside the new gizmosql:// scheme.

    Bookmark-wise: the old repository at github.com/gizmodata/adbc-driver-gizmosql is now archived and read-only. Issues, discussions, and releases all live at github.com/gizmodata/gizmosql-adbc going forward. The driver remains Apache 2.0 licensed, like GizmoSQL Core itself.

    Try it

    Spin up a GizmoSQL server, pip install adbc-driver-gizmosql (or go get the Go module), and point it at gizmosql://your-host:31337. If you hit anything, come tell us in the GizmoData Community Slack — we'd love to hear what you build.

    — Philip Moore
    Founder, GizmoData

    Ready to Try GizmoSQL?

    Experience lightning-fast data analytics with our open-source SQL engine