• SQL crate แบบอะซิงโครนัส (async) ที่สร้างด้วย Rust ล้วน และสามารถใช้ Rust macro เพื่อ ตรวจสอบ SQL query ตั้งแต่คอมไพล์ไทม์ได้โดยไม่ต้องใช้ DSL
    • ไม่ใช่ ORM! : เหมาะอย่างยิ่งสำหรับ โปรเจ็กต์ที่ต้องการใช้ SQL ตรง ๆ โดยไม่ผ่าน ORM
  • รองรับฐานข้อมูลอย่าง PostgreSQL, MySQL, MariaDB, SQLite
    • สามารถระบุ DATABASE_URL ในไฟล์ .env เพื่อให้ตรวจสอบได้ตั้งแต่คอมไพล์ไทม์อย่างง่ายดาย
  • อิมพลีเมนต์แบบ Pure Rust (ไดรเวอร์ MySQL/MariaDB เขียนด้วย Rust 100% ส่วน SQLite เชื่อมต่อกับไลบรารี C) และออกแบบอย่างปลอดภัยโดย ไม่ใช้โค้ด unsafe จึงมีความน่าเชื่อถือสูง
  • ใช้งานร่วมกับ Rust asynchronous runtime หลักอย่าง Tokio, async-std, actix และ TLS backend ที่หลากหลายได้ พร้อมรองรับการใช้งานแบบไม่ขึ้นกับแพลตฟอร์ม
  • ใช้ ไลเซนส์คู่ MIT/Apache 2.0 จึงนำไปใช้ได้กว้างขวางทั้งในโปรเจ็กต์โอเพนซอร์สและเชิงพาณิชย์

ฟีเจอร์หลัก

  • Connection pooling ด้วย sqlx::Pool
  • Row streaming แบบอะซิงโครนัส จากฐานข้อมูล
  • เตรียม query และแคชอัตโนมัติ แยกตามแต่ละ connection
  • รัน query ที่ไม่ได้เตรียมไว้ล่วงหน้า (ไม่ใช่ Prepared) ได้อย่างง่ายดาย และคืนผลลัพธ์เป็น Row type เดียวกัน
  • รองรับการเชื่อมต่อแบบเข้ารหัส TLS กับ DB ที่รองรับ (MySQL, MariaDB, PostgreSQL)
  • รองรับ การแจ้งเตือนของ PostgreSQL แบบอะซิงโครนัส : LISTEN และ NOTIFY
  • รองรับ nested transaction โดยใช้ savepoint
  • รองรับ AnyPool ซึ่งสามารถสลับ DB driver ได้แบบเลือกตามรันไทม์

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น