このプロジェクトについて
SQLxは、アプリケーションコードからSQLを実行するための非同期Rustライブラリです。ORMではなく、RustのクエリビルダーDSLも提供しません。開発者は通常のSQL文字列を記述します。オプションの`query!`および`query_as!`マクロは、ビルド時に開発データベースに接続して、クエリ構文、バインドパラメータ、結果の形状を検証します。この検証には互換性のあるスキーマを持つ`DATABASE_URL`が必要ですが、`sqlx` CLIはオフラインビルド用にクエリメタデータをキャッシュできます。
サポートされているデータベースは、PostgreSQL、MySQL、MariaDB、SQLiteです。MSSQLサポートはバージョン0.7より前に存在していましたが、ドライバの書き直しを待つため削除されました。PostgreSQLおよびMySQL/MariaDBドライバは純粋なRustで書かれています。SQLiteはlibsqlite3 Cライブラリを使用し、その機能が有効な場合、unsafeコードはSQLite統合に限定されます。
このツールキットには、組み込みの接続プーリング、単一接続API、非同期行ストリーミング、`fetch`、`fetch_one`、`fetch_optional`、`fetch_all`ヘルパー、パラメータバインディング、自動プリペアドステートメントキャッシュ、未準備およびバッチクエリ実行、ネットワークデータベース向けのTLSサポート、PostgreSQLの`LISTEN`/`NOTIFY`、セーブポイントを使用したネストされたトランザクション、接続URLから実行時にデータベースバックエンドを選択できる`Any`ドライバが含まれます。
SQLxはTokio、async-std、Actix互換ランタイムで動作し、Cargoフィーチャを通じてnative-tlsまたはrustlsバックエンドのオプションを提供します。追加のフィーチャでは、`FromRow`などの派生マクロ、マイグレーション管理と埋め込みマイグレーション、UUID、日付/時刻クレート、JSON、decimal型、IPネットワーク型、バイト文字列の統合が提供されます。
Rustがサポートされているすべてのプラットフォームでクロスプラットフォームであり、Apache License 2.0とMITのデュアルライセンスです。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.