Sobre el proyecto
SQLx es una biblioteca asíncrona de Rust para ejecutar SQL desde código de aplicación. Explícitamente no es un ORM y no proporciona un DSL de Rust para construir consultas; los desarrolladores escriben cadenas SQL ordinarias. Las macros opcionales `query!` y `query_as!` se conectan a una base de datos de desarrollo en tiempo de compilación para validar la sintaxis de las consultas, los parámetros de enlace y las formas de los resultados. Se requiere una `DATABASE_URL` con un esquema compatible para esta verificación, mientras que la CLI de `sqlx` puede almacenar en caché metadatos de consultas para compilaciones sin conexión.
Las bases de datos compatibles incluyen PostgreSQL, MySQL, MariaDB y SQLite. El soporte para MSSQL existía antes de la versión 0.7, pero se eliminó en espera de una reescritura del controlador. Los controladores de PostgreSQL y MySQL/MariaDB están escritos en Rust puro; SQLite utiliza la biblioteca C libsqlite3, y el código inseguro se limita a la integración de SQLite cuando esa característica está habilitada.
El conjunto de herramientas incluye pool de conexiones integrado, API de conexión única, transmisión asíncrona de filas, ayudantes `fetch`, `fetch_one`, `fetch_optional` y `fetch_all`, enlace de parámetros, caché automática de sentencias preparadas, ejecución de consultas no preparadas y por lotes, soporte TLS para bases de datos en red, `LISTEN`/`NOTIFY` de PostgreSQL, transacciones anidadas con puntos de guardado, y un controlador `Any` que puede seleccionar un backend de base de datos en tiempo de ejecución a partir de la URL de conexión.
SQLx funciona con los tiempos de ejecución Tokio, async-std y Actix, y ofrece opciones de backend native-tls o rustls a través de características de Cargo. Las características adicionales proporcionan macros derivadas como `FromRow`, gestión de migraciones y migraciones incrustadas, e integraciones para UUID, crates de fecha/hora, JSON, tipos decimales, tipos de red IP y cadenas de bytes.
Es multiplataforma dondequiera que Rust sea compatible y tiene doble licencia bajo Apache License 2.0 y MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.