Voltar ao blog
    Lançamento
    Philip Moore
    29 de julho de 2026
    8 min de leitura

    Driver ADBC do GizmoSQL 2.0: um núcleo em Go leva o GizmoSQL a todas as linguagens ADBC

    O driver ADBC do GizmoSQL foi refeito do zero em Go, com uma camada Python fina que mantém a compatibilidade com a versão 1.x. Um único driver nativo agora oferece OAuth/SSO, detecção automática de DDL/DML e os demais recursos do GizmoSQL em Python, Go, R, Rust, C#, C/C++ e JavaScript.

    ADBC
    Go
    Python
    Arrow Flight SQL
    GizmoSQL
    OAuth
    Lançamento
    Driver ADBC do GizmoSQL 2.0: núcleo em Go para todas as linguagens ADBC

    Hoje lançamos a versão 2.0 do driver ADBC do GizmoSQL, a maior mudança na experiência dos clientes GizmoSQL desde o lançamento do driver. O núcleo foi reescrito em Go e compilado como uma biblioteca compartilhada nativa, enquanto o pacote Python que você já conhece passou a ser uma camada fina sobre ela. Mesmos recursos, mesma API — agora qualquer linguagem com um gerenciador de drivers ADBC recebe a experiência completa do GizmoSQL, não só Python.

    O novo endereço do projeto é github.com/gizmodata/gizmosql-adbc. O repositório anterior, exclusivo de Python 1.x (adbc-driver-gizmosql), foi arquivado. Mas o nome do pacote no PyPI não mudou, e a versão 2.0 foi projetada para substituir a anterior sem adaptações.

    Por que reescrever em Go?

    O driver 1.x era uma biblioteca Python. Funcionava muito bem, com fluxos OAuth/SSO no navegador, roteamento automático de DDL/DML e perfis de conexão. Mas todos esses recursos estavam no código Python e, portanto, disponíveis somente aos usuários de Python. Quem se conectava por Go, R, Rust ou C# recorria ao driver Flight SQL genérico e perdia os comportamentos específicos do GizmoSQL.

    A arquitetura ADBC oferece uma solução melhor: implementar o driver uma vez como biblioteca compartilhada nativa e permitir que cada linguagem a carregue pelo gerenciador de drivers ADBC. Go é uma escolha natural: é a linguagem do driver Apache Arrow ADBC Flight SQL original, permite compilação cruzada para todas as plataformas do GizmoSQL e produz uma única biblioteca autossuficiente, sem dependências de runtime.

    Essa é a versão 2.0: um núcleo Go para todas as linguagens. Python, Go, R, C/C++, C#, Rust e JavaScript carregam o mesmo driver e recebem o mesmo comportamento.

    Os recursos do GizmoSQL, agora em toda parte

    Tudo o que tornava o driver Python 1.x mais agradável que uma conexão Flight SQL genérica agora está no núcleo compartilhado:

    • Autenticação OAuth / SSO — autenticação por provedor de identidade externo, com fluxo no navegador para uso interativo e modo sem interface para CI e serviços. Entre com o IdP da sua empresa em vez de distribuir senhas.
    • Detecção automática de DDL/DML — CREATE, INSERT, UPDATE, DELETE e semelhantes são detectados e encaminhados pelo caminho DoPut do Flight SQL para execução imediata no servidor. Você não precisa mais tentar entender por que sua "consulta" DDL retornou um conjunto vazio.
    • Suporte a RETURNING — os resultados de INSERT / UPDATE / DELETE ... RETURNING são materializados imediatamente e retornados como qualquer outro conjunto de resultados.
    • Esquema de URI gizmosql:// — uma URI de conexão simples, com TLS ativado por padrão.
    • Perfis de conexão ADBC — os perfis TOML reutilizáveis introduzidos na 1.2.0 continuam disponíveis, com substituição por variáveis de ambiente para manter credenciais fora do código.
    • Ingestão em massa — cargas de alta vazão com preservação de geometria via cursor.adbc_ingest.
    • Observabilidade OpenTelemetry — rastreamento e logs herdados da base do driver Flight SQL original.

    Python: mesmo pacote, atualização compatível

    O pacote Python mantém seu nome no PyPI, e a API 2.x é compatível byte a byte com o driver 1.x. Seu código continua funcionando:

    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())

    Por dentro, o wheel agora inclui a biblioteca compartilhada compilada em Go para sua plataforma e a carrega pelo gerenciador ADBC. Do ponto de vista do seu código, nada mudou.

    Go: um cliente nativo completo

    Desenvolvedores Go recebem seu próprio driver, com versionamento independente por tags go/vX.Y.Z:

    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",
    })

    Outras linguagens: o gerenciador de drivers

    Para R, Rust, C#, C/C++ e JavaScript, instale a biblioteca compartilhada e referencie-a no gerenciador de drivers ADBC da linguagem com driver="gizmosql". Uma definição de driver, um conjunto de comportamentos, todos os ambientes de execução.

    Todo o ecossistema de clientes acompanhou a mudança

    Reescrever um driver só é útil se as ferramentas que você usa acompanharem a mudança. A partir de hoje, toda a família de pacotes e utilitários cliente do GizmoSQL foi atualizada para o driver 2.0:

    Se você usa alguma dessas ferramentas, basta atualizar o pacote; o novo driver vem junto.

    Atualizando da versão 1.x

    Para usuários Python: pip install --upgrade adbc-driver-gizmosql. É só isso. A API é compatível, os perfis de conexão são preservados e as URIs grpc+tls:// continuam funcionando junto com o novo esquema gizmosql://.

    Atualize seus favoritos: o repositório antigo, github.com/gizmodata/adbc-driver-gizmosql, agora está arquivado e somente para leitura. Issues, discussões e versões passam a ficar em github.com/gizmodata/gizmosql-adbc. O driver continua licenciado sob Apache 2.0, como o próprio GizmoSQL Core.

    Experimente

    Inicie um servidor GizmoSQL, execute pip install adbc-driver-gizmosql (ou go get para o módulo Go) e aponte-o para gizmosql://your-host:31337. Se encontrar algum problema, fale conosco no Slack da comunidade GizmoData. Queremos saber o que você está construindo.

    — Philip Moore
    Fundador, GizmoData

    Pronto para experimentar o GizmoSQL?

    Experimente análises de dados ultrarrápidas com nosso mecanismo SQL de código aberto

    Agende uma demonstração!Agendamento via Calendly