- 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 ได้แบบเลือกตามรันไทม์
ยังไม่มีความคิดเห็น