Sobre o projeto
SQLx é uma biblioteca assíncrona de Rust para executar SQL a partir do código de aplicação. Ela explicitamente não é um ORM e não fornece um DSL de construtor de consultas em Rust; os desenvolvedores escrevem strings SQL comuns. As macros opcionais `query!` e `query_as!` conectam-se a um banco de dados de desenvolvimento em tempo de compilação para validar a sintaxe das consultas, parâmetros vinculados e formatos de resultado. Uma `DATABASE_URL` com um esquema compatível é necessária para essa verificação, enquanto a CLI do `sqlx` pode armazenar em cache metadados de consulta para builds offline.
Os bancos de dados suportados incluem PostgreSQL, MySQL, MariaDB e SQLite. O suporte a MSSQL existia antes da versão 0.7, mas foi removido até uma reescrita do driver. Os drivers PostgreSQL e MySQL/MariaDB são escritos em Rust puro; SQLite usa a biblioteca C libsqlite3, e código inseguro é confinado à integração SQLite quando esse recurso está habilitado.
O kit de ferramentas inclui pooling de conexões embutido, APIs de conexão única, streaming assíncrono de linhas, auxiliares `fetch`, `fetch_one`, `fetch_optional` e `fetch_all`, vinculação de parâmetros, cache automático de declarações preparadas, execução de consultas em lote e não preparadas, suporte a TLS para bancos de dados em rede, `LISTEN`/`NOTIFY` do PostgreSQL, transações aninhadas com savepoints e um driver `Any` que pode selecionar um backend de banco de dados em tempo de execução a partir da URL de conexão.
SQLx funciona com Tokio, async-std e runtimes compatíveis com Actix, e oferece opções de backend native-tls ou rustls através de recursos do Cargo. Recursos adicionais fornecem macros derive como `FromRow`, gerenciamento de migrações e migrações embutidas, e integrações para UUID, crates de data/hora, JSON, tipos decimais, tipos de rede IP e strings de bytes.
É multiplataforma onde quer que Rust seja suportado e é licenciado duplamente sob Apache License 2.0 e MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.