14 puan yazan xguru 2025-08-04 | 6 yorum | WhatsApp'ta paylaş
  • Rust makrolarını kullanarak DSL olmadan derleme zamanında SQL sorgu doğrulaması yapabilen, eşzamansız (async) yapıda saf Rust tabanlı bir SQL crate'i
    • ORM değildir! : ORM olmadan SQL'i olduğu gibi kullanmak isteyen projeler için idealdir
  • PostgreSQL, MySQL, MariaDB, SQLite gibi veritabanlarını destekler
    • .env dosyasında DATABASE_URL tanımlayarak derleme zamanı kontrolü kolayca yapılabilir
  • Pure Rust implementasyonu (MySQL/MariaDB sürücüsü %100 Rust ile yazılmıştır. SQLite ise C kütüphanesi entegrasyonu kullanır), unsafe kod kullanmadan güvenli biçimde tasarlanmıştır ve bu sayede yüksek güvenilirlik sunar
  • Tokio, async-std, actix gibi başlıca Rust eşzamansız çalışma zamanları ve çeşitli TLS backend'leriyle uyumludur; platformdan bağımsız olarak kullanılabilir
  • MIT/Apache 2.0 çift lisansı ile hem açık kaynak hem de ticari projelerde geniş kullanım imkanı sunar

Başlıca özellikler

  • sqlx::Pool ile bağlantı havuzu yönetimi
  • Veritabanından verileri eşzamansız Row akışı olarak alma
  • Her bağlantı için otomatik sorgu hazırlama ve önbellekleme
  • Hazırlanmamış (Prepared olmayan) sorgular da kolayca çalıştırılabilir; sonuçlar aynı Row tipiyle döndürülür
  • Desteklenen veritabanlarında (MySQL, MariaDB, PostgreSQL) TLS şifreli bağlantı desteği
  • Eşzamansız PostgreSQL bildirimleri desteği: LISTEN ve NOTIFY
  • Savepoint kullanan iç içe transaction desteği
  • Çalışma zamanında veritabanı sürücüsünü seçmeli olarak değiştirebilen AnyPool desteği

6 yorum

 
secret3056 2025-08-04

Ben kişisel olarak Go'nun sqlc yaklaşımını seviyorum.

Önce yerel sorguyu yazıp ardından kod üreten bir yöntem.

 
mokaa 2025-08-04

_bin collation alanlarını String olarak serialize edememe sorunu 1 yılı aşkın süredir düzeltilmiyor; bu yüzden bunu production amaçlı kullanmak pek uygun değil. Üstelik bu bir regresyon sorunu olduğundan, birçok kullanıcı ve kütüphane hâlâ 0.7 sürümünde kalmış durumda.

 
secret3056 2025-08-04

En azından düzeltmiş gibi görünüyorlar ama bunun neredeyse bir yıl sürmesi yine de zaman aldı.

 
unsure4000 2025-08-04

Issue bağlantısını paylaşabilir misiniz? Biraz aradım ama bulmak zor oldu.

 
xguru 2025-08-04

SQLx - Rust SQL Toolkit
Bunu 5 yıl önce bir kez paylaşmıştım. Bu süre içinde epey fazla değişiklik oldu.

Artık derleme zamanında gerçek bir DB ile bağlantı kurup doğrulama yapabiliyor,
tokio/async-std/actix ile de uyumlu çalışıyor ve
connection pool, iç içe transaction, AnyPool gibi gerçek kullanımda işe yarayan özellikleri ve testleri güçlendirildiği için büyük ölçekli servislerde de uygulanabilecek,
ORM olmadan SQL'i doğrudan kullanan projelere önerilebilecek bir proje haline geldi.

Ayrıca sqlx üzerinden ORM gerçekleştiren SeaORM, Welds gibi projeler de ortaya çıktı.
Bunun dışında query builder olan SeaQuery ve web uygulama framework'ü SQLPage gibi şeyler de var.