Simon Willison lançou em 12 de agosto de 2026 a versão 0.1a0 do alchemy-utils, uma biblioteca Python e ferramenta de linha de comando que leva a API do sqlite-utils para diferentes bancos de dados. O projeto usa SQLAlchemy como camada de acesso e mira quem precisa executar operações semelhantes em PostgreSQL, SQLite e DuckDB. A primeira versão ainda é uma alfa, mas já lista dados de um PostgreSQL local e cria uma tabela DuckDB a partir de um CSV.

A API continua próxima do sqlite-utils

Willison pediu ao Codex e ao GPT-5.6 Sol Ultra que construíssem um protótipo com os principais métodos da biblioteca anterior. A lista inclui insert, upsert, insert_all, upsert_all, create, update e recursos de inspeção de tabelas.

A proposta muda o alvo do projeto sem abandonar sua interface central. O sqlite-utils trabalha com SQLite; o alchemy-utils usa SQLAlchemy para conversar com vários mecanismos. O anúncio descreve o resultado como uma versão independente do banco, mas não apresenta uma comparação de desempenho entre os motores.

Willison também pediu testes para PostgreSQL, SQLite e DuckDB. Ele orientou os agentes a consultar o código em ~/dev/sqlite-utils, iniciar o projeto com uv init, criar um repositório Git e usar desenvolvimento orientado por testes com pytest. O texto diz que foram necessários poucos comandos adicionais para chegar a uma versão considerada boa o bastante para uma distribuição alfa.

O release está disponível no GitHub como alchemy-utils 0.1a0. O comunicado não informa licença, política de compatibilidade nem uma versão estável. Também não detalha quais partes da API antiga ainda faltam.

Os exemplos cobrem PostgreSQL e DuckDB

Para consultar uma tabela PostgreSQL, Willison mostrou um comando com uvx e o extra alchemy-utils[postgresql]:

uvx --with 'alchemy-utils[postgresql]' alchemy-utils rows 'postgresql+psycopg://simon@localhost:5432/simonwillisonblog' redirects_redirect

O comando acessa uma cópia local do banco do blog de Willison e lista linhas da tabela redirects_redirect. A saída contém campos como id, domain, path, target e created, com exemplos de redirecionamentos publicados em 2020 e 2017.

O segundo exemplo usa DuckDB e baixa o arquivo Street_Tree_List.csv do projeto sf-tree-history. O alchemy-utils recebe o CSV pela entrada padrão, cria o esquema da tabela automaticamente e grava os dados em /tmp/trees.db:

curl 'https://raw.githubusercontent.com/simonw/sf-tree-history/refs/heads/main/Street_Tree_List.csv' | uvx --with 'alchemy-utils[duckdb]' alchemy-utils insert 'duckdb:////tmp/trees.db' trees - --csv

Esse teste expõe a principal ressalva de desempenho relatada no anúncio. A primeira execução levou quase uma hora; depois que Willison pediu ao Codex uma otimização, o tempo caiu para cerca de 35 segundos. O comunicado não informa o hardware, o tamanho do arquivo ou se a medição vale para outras cargas.

Os exemplos comprovam que a ferramenta executa consultas em PostgreSQL e inserções em DuckDB. Eles não comprovam, por si só, que todos os métodos funcionem nos três bancos citados. A afirmação sobre cobertura depende dos testes mencionados por Willison, enquanto os resultados publicados mostram apenas esses dois fluxos práticos.

O projeto nasce como um experimento conduzido por agentes de programação. Codex e GPT-5.6 Sol Ultra receberam a tarefa de pesquisar a adaptação, escrever testes e criar o repositório; Willison então publicou o primeiro release. Por enquanto, o dado concreto é uma alfa utilizável, não uma substituição pronta do sqlite-utils.

Fontes

Simon WillisonFerramentas para Devs
Como fazemos: nossa equipe monitora diariamente os repositórios de código aberto em maior alta e produz esta cobertura com apoio de modelos de linguagem, sempre a partir de dados verificados na fonte primária — repositório, documentação oficial e ranking público. Os números de estrelas e a posição no ranking refletem o momento da coleta. Entenda o método.