SQLX - Rust tabanlı açık kaynak SQL araç takımı
(github.com/launchbadge)- 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
.envdosyasındaDATABASE_URLtanı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::Poolile 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:
LISTENveNOTIFY - Savepoint kullanan iç içe transaction desteği
- Çalışma zamanında veritabanı sürücüsünü seçmeli olarak değiştirebilen
AnyPooldesteği
6 yorum
Ben kişisel olarak Go'nun
sqlcyaklaşımını seviyorum.Önce yerel sorguyu yazıp ardından kod üreten bir yöntem.
_bincollation alanlarınıStringolarak 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.En azından düzeltmiş gibi görünüyorlar ama bunun neredeyse bir yıl sürmesi yine de zaman aldı.
Issue bağlantısını paylaşabilir misiniz? Biraz aradım ama bulmak zor oldu.
https://github.com/launchbadge/sqlx/issues/3387
Sanırım bu.
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.