इस प्रोजेक्ट के बारे में
SQLx एक asynchronous Rust लाइब्रेरी है जो application code से SQL निष्पादित करने के लिए है। यह स्पष्ट रूप से एक ORM नहीं है और यह एक Rust query-builder DSL प्रदान नहीं करता; डेवलपर्स सामान्य SQL strings लिखते हैं। वैकल्पिक `query!` और `query_as!` macros build time पर एक development database से जुड़ते हैं ताकि query syntax, bind parameters, और result shapes को सत्यापित किया जा सके। इस सत्यापन के लिए एक संगत schema वाले `DATABASE_URL` की आवश्यकता होती है, जबकि `sqlx` CLI offline builds के लिए query metadata को cache कर सकता है।
समर्थित databases में PostgreSQL, MySQL, MariaDB, और SQLite शामिल हैं। संस्करण 0.7 से पहले MSSQL समर्थन मौजूद था लेकिन इसे driver rewrite की प्रतीक्षा में हटा दिया गया। PostgreSQL और MySQL/MariaDB drivers शुद्ध Rust में लिखे गए हैं; SQLite libsqlite3 C लाइब्रेरी का उपयोग करता है, और जब वह feature सक्षम होता है तब unsafe code केवल SQLite integration तक सीमित होता है।
इस toolkit में built-in connection pooling, single-connection APIs, asynchronous row streaming, `fetch`, `fetch_one`, `fetch_optional`, और `fetch_all` helpers, parameter binding, automatic prepared-statement caching, unprepared और batch query execution, network databases के लिए TLS समर्थन, PostgreSQL `LISTEN`/`NOTIFY`, savepoints के साथ nested transactions, और एक `Any` driver शामिल है जो connection URL से runtime पर database backend चुन सकता है।
SQLx Tokio, async-std, और Actix-compatible runtimes के साथ काम करता है, और Cargo features के माध्यम से native-tls या rustls backend विकल्प प्रदान करता है। अतिरिक्त features derive macros जैसे `FromRow`, migration management और embedded migrations, और UUID, date/time crates, JSON, decimal types, IP network types, और byte strings के लिए integrations प्रदान करते हैं।
यह सभी platforms पर काम करता है जहाँ Rust समर्थित है और इसे Apache License 2.0 और MIT के तहत dual-licensed किया गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.