Repolode
transact-rs

transact-rs/sqlx

Toolkit SQL assíncrono e escrito inteiramente em Rust, com consultas SQL comuns verificadas em tempo de compilação e suporte a PostgreSQL, MySQL/MariaDB e SQLite.

Estrelas
17,587
Forks
1,750
Issues abertas
785
Último commit
há 3 horas

O que é?

SQLx é um crate Rust para se conectar a bancos de dados SQL de forma assíncrona. Em vez de usar um query builder ou uma DSL, você escreve strings SQL comuns, e as macros de consulta pedem ao banco de dados usado no desenvolvimento que as valide em tempo de compilação. Assim, erros de sintaxe e de tipos aparecem antes de o programa ser executado. O projeto não é um ORM; o mapeamento de linhas para structs é feito com macros derive ou `query_as`.

O crate oferece um pool de conexões, streaming de linhas, cache de prepared statements, transações com savepoints e suporte a LISTEN/NOTIFY no PostgreSQL. Os drivers de Postgres e MySQL/MariaDB são implementados inteiramente em Rust, sem código `unsafe`, enquanto o driver de SQLite usa a biblioteca C SQLite. O SQLx funciona com os runtimes tokio e async-std e com native-tls ou rustls para TLS.

Um driver `Any` permite que a aplicação escolha o backend do banco de dados em tempo de execução, com base no esquema da URL de conexão.

Recursos principais

  • 01Consultas SQL verificadas em tempo de compilação por meio de macros, sem DSL de query builder.
  • 02API assíncrona com pool de conexões integrado e streaming de linhas.
  • 03Suporte a PostgreSQL, MySQL/MariaDB e SQLite.
  • 04Cache automático de prepared statements por conexão.
  • 05Transações aninhadas com savepoints.
  • 06Suporte a LISTEN/NOTIFY no PostgreSQL.
  • 07Compatível com tokio ou async-std e com native-tls ou rustls.

Casos de uso

  • Criar serviços web assíncronos em Rust com PostgreSQL ou MySQL.
  • Escrever SQL otimizado manualmente e ainda detectar incompatibilidades com o schema durante o build.
  • Incorporar SQLite a uma aplicação Rust com acesso assíncrono.
  • Criar ferramentas independentes de banco de dados que escolhem o driver em tempo de execução a partir de uma URL.

Início rápido

  1. 1

    Adicione sqlx ao Cargo.toml com um recurso de runtime (runtime-tokio ou runtime-async-std) e, opcionalmente, um recurso de TLS

  2. 2

    Ative o driver de banco de dados necessário (postgres, mysql ou sqlite) na lista de features do sqlx

  3. 3

    Crie um pool de conexões com PgPoolOptions (ou o tipo de pool correspondente) e execute uma consulta como mostrado no Quickstart

Antes de usar

  • O driver do SQLite depende da biblioteca C libsqlite3 e usa código unsafe, portanto não é Rust puro.
  • As macros de consulta verificadas em tempo de compilação exigem que um banco de dados de desenvolvimento esteja disponível durante o build, a menos que o modo offline seja usado.
  • O driver de MSSQL foi removido após a versão 0.7 e não é compatível atualmente.

Tópicos

Perguntas frequentes

O que é sqlx?
Toolkit SQL assíncrono e escrito inteiramente em Rust, com consultas SQL comuns verificadas em tempo de compilação e suporte a PostgreSQL, MySQL/MariaDB e SQLite. SQLx é um crate Rust para se conectar a bancos de dados SQL de forma assíncrona. Em vez de usar um query builder ou uma DSL, você escreve strings SQL comuns, e as macros de consulta pedem ao banco de dados usado no desenvolvimento que as valide em tempo de compilação. Assim, erros de sintaxe e de tipos aparecem antes de o programa ser executado. O projeto não é um ORM; o mapeamento de linhas para structs é feito com macros derive ou `query_as`.
sqlx é gratuito? Qual é a licença?
sqlx é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
sqlx ainda é mantido?
Manutenção ativa. O último commit de sqlx foi em 21 de out. de 2026.
Para que posso usar sqlx?
Criar serviços web assíncronos em Rust com PostgreSQL ou MySQL. Escrever SQL otimizado manualmente e ainda detectar incompatibilidades com o schema durante o build. Incorporar SQLite a uma aplicação Rust com acesso assíncrono. Criar ferramentas independentes de banco de dados que escolhem o driver em tempo de execução a partir de uma URL.
Como instalar sqlx?
Adicione sqlx ao Cargo.toml com um recurso de runtime (runtime-tokio ou runtime-async-std) e, opcionalmente, um recurso de TLS Ative o driver de banco de dados necessário (postgres, mysql ou sqlite) na lista de features do sqlx Crie um pool de conexões com PgPoolOptions (ou o tipo de pool correspondente) e execute uma consulta como mostrado no Quickstart
Onde consigo sqlx?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/transact-rs/sqlx

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados