14 poin oleh xguru 2025-08-04 | 6 komentar | Bagikan ke WhatsApp
  • Crate SQL murni berbasis Rust dengan pendekatan asinkron (async), yang memungkinkan validasi query SQL pada waktu kompilasi tanpa DSL dengan memanfaatkan macro Rust
    • Bukan ORM! : sangat cocok untuk proyek yang ingin menggunakan SQL apa adanya tanpa ORM
  • Mendukung database seperti PostgreSQL, MySQL, MariaDB, SQLite
    • Pemeriksaan pada waktu kompilasi dapat dilakukan dengan mudah dengan menetapkan DATABASE_URL di file .env
  • Implementasi Pure Rust (driver MySQL/MariaDB ditulis 100% dengan Rust. SQLite terhubung dengan library C), dirancang aman tanpa penggunaan kode unsafe, sehingga memiliki keandalan tinggi
  • Kompatibel dengan runtime asinkron utama Rust seperti Tokio, async-std, actix serta berbagai backend TLS, dan dapat digunakan secara independen dari platform
  • Lisensi ganda MIT/Apache 2.0, sehingga dapat dimanfaatkan secara luas untuk proyek open source maupun komersial

Fitur utama

  • Connection pooling dengan sqlx::Pool
  • Streaming Row asinkron dari database
  • Persiapan dan caching query otomatis untuk setiap koneksi
  • Query yang tidak dipersiapkan (bukan Prepared) juga dapat dijalankan dengan mudah, dan hasilnya dikembalikan dalam tipe Row yang sama
  • Mendukung koneksi terenkripsi TLS pada DB yang didukung (MySQL, MariaDB, PostgreSQL)
  • Mendukung notifikasi PostgreSQL asinkron : LISTEN dan NOTIFY
  • Mendukung transaksi bertingkat dengan memanfaatkan savepoint
  • Mendukung AnyPool yang memungkinkan penggantian driver DB secara selektif saat runtime

6 komentar

 
secret3056 2025-08-04

Secara pribadi saya menyukai pendekatan sqlc di Go.

Pada dasarnya, caranya adalah menulis kueri native terlebih dahulu lalu menghasilkan kode.

 
mokaa 2025-08-04

Masalah di mana field collation _bin tidak bisa diserialisasikan menjadi String sudah lebih dari setahun belum juga diperbaiki, sehingga kurang layak digunakan untuk kebutuhan produksi. Bahkan ini adalah isu regresi, jadi banyak pengguna maupun library masih bertahan di versi 0.7.

 
secret3056 2025-08-04

Sepertinya memang sudah diperbaiki, tapi butuh waktu hampir setahun juga.

 
unsure4000 2025-08-04

Boleh minta tautan isunya? Saya sudah coba cari, tapi agak sulit menemukannya.

 
xguru 2025-08-04

SQLx - Rust SQL Toolkit
Saya pernah membagikannya sekali sekitar 5 tahun lalu, dan selama itu sudah ada cukup banyak perubahan.

Sekarang validasi sudah bisa dilakukan pada saat compile time dengan terhubung ke DB yang sebenarnya,
serta kompatibel hingga dengan tokio/async-std/actix,
dengan penguatan fitur dan pengujian yang layak dipakai di lingkungan produksi seperti connection pool, nested transaction, AnyPool, sehingga bisa diterapkan juga pada layanan berskala besar,
dan kini menjadi proyek yang layak direkomendasikan untuk proyek yang menggunakan SQL secara langsung tanpa ORM.

Selain itu, melalui sqlx juga muncul proyek yang mengimplementasikan ORM seperti SeaORM dan Welds.
Di luar itu, ada juga SeaQuery sebagai query builder dan SQLPage sebagai framework aplikasi web.