عن المشروع

SQLx هي مكتبة Rust غير متزامنة لتنفيذ SQL من كود التطبيق. إنها ليست ORM صراحةً ولا توفر DSL لبناء استعلامات Rust؛ يكتب المطورون سلاسل SQL عادية. الماكرو الاختياري `query!` و `query_as!` يتصلان بقاعدة بيانات تطوير في وقت البناء للتحقق من صيغة الاستعلام، ربط المعاملات، وأشكال النتائج. مطلوب `DATABASE_URL` مع مخطط متوافق لهذا التحقق، بينما يمكن لأداة `sqlx` CLI تخزين بيانات الاستعلام مؤقتًا للبناءات غير المتصلة. قواعد البيانات المدعومة تشمل PostgreSQL وMySQL/MariaDB وSQLite. دعم MSSQL كان موجودًا قبل الإصدار 0.7 لكنه أُزيل بانتظار إعادة كتابة المشغل. مشغلات PostgreSQL وMySQL/MariaDB مكتوبة بلغة Rust نقية؛ SQLite تستخدم مكتبة libsqlite3 C، والكود غير الآمن محصور في تكامل SQLite عند تفعيل هذه الميزة. تتضمن مجموعة الأدوات تجمع اتصالات مدمج، واجهات برمجة تطبيقات اتصال فردي، تدفق صفوف غير متزامن، مساعدات `fetch` و `fetch_one` و `fetch_optional` و `fetch_all`، ربط المعاملات، تخزين مؤقت تلقائي للاستعلامات المُعدة، تنفيذ استعلامات غير مُعدة ودُفعات، دعم TLS لقواعد بيانات الشبكة، `LISTEN`/`NOTIFY` في PostgreSQL، معاملات متداخلة مع نقاط حفظ، ومشغل `Any` يمكنه اختيار قاعدة بيانات خلفية في وقت التشغيل من رابط الاتصال. SQLx تعمل مع بيئات تشغيل Tokio وasync-std وActix، وتقدم خيارات native-tls أو rustls الخلفية عبر ميزات Cargo. الميزات الإضافية توفر ماكرو اشتقاق مثل `FromRow`، إدارة الترحيلات والترحيلات المدمجة، وتكاملات لـ UUID، مكتبات التاريخ/الوقت، JSON، أنواع الأعداد العشرية، أنواع شبكات IP، وسلاسل البايت. إنها متعددة المنصات حيثما يُدعم Rust، وهي مرخصة بموجب ترخيص Apache License 2.0 وMIT.