14 पॉइंट द्वारा xguru 2025-08-04 | 6 टिप्पणियां | WhatsApp पर शेयर करें
  • यह async तरीके से काम करने वाला pure Rust-आधारित SQL crate है, जो Rust macro का उपयोग करके DSL के बिना compile time पर SQL query validation संभव बनाता है
    • यह ORM नहीं है! : उन projects के लिए बेहतरीन जो ORM के बिना SQL को उसी रूप में इस्तेमाल करना चाहते हैं
  • PostgreSQL, MySQL, MariaDB, SQLite जैसे databases का समर्थन
    • .env फ़ाइल में DATABASE_URL सेट करके आसानी से compile-time check किया जा सकता है
  • Pure Rust implementation (MySQL/MariaDB driver 100% Rust में लिखे गए हैं. SQLite, C library integration का उपयोग करता है), unsafe code का उपयोग किए बिना सुरक्षित रूप से डिज़ाइन किया गया है, इसलिए इसकी विश्वसनीयता अधिक है
  • Tokio, async-std, actix जैसे प्रमुख Rust async runtimes और विभिन्न TLS backends के साथ compatible है, और platform-independent तरीके से इस्तेमाल किया जा सकता है
  • MIT/Apache 2.0 dual license के तहत, open source और commercial projects में व्यापक रूप से उपयोग किया जा सकता है

मुख्य विशेषताएँ

  • sqlx::Pool के ज़रिये connection pooling
  • database से डेटा का async Row streaming
  • हर connection के लिए automatic query preparation और caching
  • unprepared (Prepared नहीं) queries भी आसानी से चल सकती हैं, और result उसी Row type में लौटता है
  • समर्थित DBs (MySQL, MariaDB, PostgreSQL) में TLS encrypted connection का समर्थन
  • async PostgreSQL notifications का समर्थन : LISTEN और NOTIFY
  • savepoint का उपयोग करने वाले nested transactions का समर्थन
  • runtime पर DB driver को वैकल्पिक रूप से बदलने योग्य AnyPool का समर्थन

6 टिप्पणियां

 
secret3056 2025-08-04

व्यक्तिगत रूप से, मुझे Go के sqlc का approach पसंद है.

यह पहले native query लिखने और फिर code generate करने का तरीका है.

 
mokaa 2025-08-04

_bin collation फ़ील्ड को String में serialize न कर पाने वाली समस्या 1 साल से ज़्यादा समय से ठीक नहीं हुई है, इसलिए इसे production उपयोग के लिए इस्तेमाल करना व्यावहारिक नहीं है। यहाँ तक कि यह एक regression issue है, इसलिए बहुत से उपयोगकर्ता और libraries 0.7 version पर ही रुके हुए हैं।

 
secret3056 2025-08-04

लगता है फिलहाल इसे ठीक तो कर दिया है, लेकिन इसमें लगभग 1 साल लग गया।

 
unsure4000 2025-08-04

क्या आप issue link साझा कर सकते हैं? मैंने थोड़ा खोजा, लेकिन उसे ढूंढना मुश्किल हो रहा है।

 
yshrust 2025-08-04

https://github.com/launchbadge/sqlx/issues/3387

लगता है यही है

 
xguru 2025-08-04

SQLx - Rust SQL Toolkit
इसे मैंने 5 साल पहले एक बार शेयर किया था। तब से इसमें काफ़ी बदलाव हुए हैं।

अब compile time पर असली DB से कनेक्ट करके validation संभव हो गया है,
tokio/async-std/actix तक compatible है,
और connection pool, nested transaction, AnyPool जैसी production में काम आने वाली features और tests मज़बूत हुए हैं, इसलिए अब यह बड़े पैमाने की services में भी लागू किया जा सकता है। यह उन projects के लिए recommend करने लायक बन गया है जो ORM के बिना सीधे SQL का इस्तेमाल करते हैं।

और sqlx के ज़रिए ORM implement करने वाले SeaORM, Welds जैसे projects भी सामने आए हैं।
इसके अलावा query builder SeaQuery और web application framework SQLPage जैसी चीज़ें भी हैं।