Um construtor de consultas SQL para TypeScript com segurança de tipos e autocomplete para tabelas, colunas e tipos de resultado em vários bancos de dados SQL.
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
Adicione sqlx ao Cargo.toml com um recurso de runtime (runtime-tokio ou runtime-async-std) e, opcionalmente, um recurso de TLS
- 2
Ative o driver de banco de dados necessário (postgres, mysql ou sqlite) na lista de features do sqlx
- 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
ORM seguro e extensível e query builder para Rust, com verificação de consultas em tempo de compilação para PostgreSQL, MySQL, SQLite e MariaDB.
ORM headless e leve para TypeScript, compatível com PostgreSQL, MySQL e SQLite em Node.js, Bun, Deno e runtimes edge.
ORM baseado em promises para Node.js e TypeScript, compatível com PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle e Db2.
Editor SQL e gerenciador de bancos de dados multiplataforma para Linux, macOS e Windows, com suporte a MySQL, PostgreSQL, SQLite, SQL Server e muitos outros.
Um compilador SQL que lê suas consultas e gera código type-safe em Go, Kotlin, Python e TypeScript.