2 puan yazan GN⁺ 2024-10-16 | 1 yorum | WhatsApp'ta paylaş
  • sqlite3'ün modern WASM destekli tarayıcılarda kullanılmasını sağlar
  • İlk herkese açık beta, 3.40 sürümüyle başladı ve topluluk geri bildirimlerine göre API'nin 3.41 sürümünde kararlı hale getirilmesi planlanıyor

Gerçek kullanım örnekleri

  • SQLime, Evolu, SQLiteNext gibi çeşitli projelerde kullanılıyor
  • İlgili projeler arasında Alon Zakai'nin sql.js'i, Roy Hashimoto'nun wa-sqlite'ı, James Long'un absurd-js'i yer alıyor

GN⁺ özeti

  • sqlite3 WASM ve JavaScript API'si, web tarayıcılarında sqlite3 veritabanlarının kullanılmasını sağlayan önemli bir projedir
  • Çeşitli istemci kodu tarifleri ve API değişiklikleri sunarak geliştiricilere yararlı bilgiler sağlar
  • İlgili projelerle yapılan karşılaştırmalar sayesinde bu projenin özgünlüğü ve faydası anlaşılabilir
  • Benzer işlevlere sahip önerilen projeler arasında sql.js ve wa-sqlite bulunur

1 yorum

 
GN⁺ 2024-10-16
Hacker News yorumları
  • SQLite’i tarayıcı içi bellekte çalıştırma ve WAL loglarını sunucuya akıtmak için Litestream ile Cloudflare Durable Objects hilelerini kullanma fikri ilginç

    • Sunucu tarafı verileri kullanarak istemci tarafı veritabanı yeniden oluşturulabilir
    • WAL modu varsayılan SQLite WASM derlemesine dahil değil, bu yüzden özelleştirme gerekiyor
  • SQLite’ın en son sürümü 3.46.1, ancak sayfa güncellenmediği için API kararlılığı konusunda kafa karışıklığı var

    • SQLite ekibi, WASM sürümünü de içeren resmi bir npm paketi sunsa iyi olurdu
  • Kişisel olarak Pyodide’ın SQLite-in-WASM sürümü tercih ediliyor

    • Pyodide, Python standart kütüphanesinin bir parçası olarak WASM SQLite’yı ücretsiz sunuyor
    • Şu anda Pyodide’ın SQLite sürümü 3.39.0 ve sürüm güncellemesi gerekiyor
  • Yerel öncelikli bir ortamda SQLite kullanmak ağır hissettiriyor

    • Tarayıcının yerleşik depolama API’lerini, özellikle IndexedDB’yi kullanmak daha verimli
    • SQLite benzeri bir API sunan açık kaynaklı bir çözüme ihtiyaç var
  • Golang’da ncruces’in wasm SQLite paketi iyi

    • OpenBSD gibi ortamlarda iyi çalışıyor
  • Rust ekosisteminde SQLite kullanmaya çalıştım, ancak şu anda bunu destekleyen sarmalayıcılar yetersiz

    • emscripten wasm kodunu wasm32-unknown-unknown ile uyumlu hale getirmek zor
  • SQLite’ın IndexedDB’nin yerine geçip geçemeyeceği merak ediliyor

    • Verilerin kalıcı olup olmadığı, dosya sistemi API’sine ya da IndexedDB/yerel depolamaya kaydedilmesi gerekip gerekmediği soruluyor
  • En az SQLite WASM bağımlılık boyutu yaklaşık 1.3MB

    • Tarayıcı içi uygulamalar için biraz büyük, ancak diğer ortamlarda uygun olabilir
  • WebSQL SQLite olsaydı, çevrimdışı öncelikli ve genel uygulama depolama ekosistemi daha iyi olabilirdi görüşü var

    • Tarayıcının SQLite API’sini desteklediğinin açıkça belirtilmesi iyi olurdu
  • WASM derlemesindeki SQLite ile Chicory runtime kullanılarak saf JVM üzerinde çalışan bir SQLite kütüphanesi oluşturuldu

    • Deneysel bir proje olarak JVM ekosistemine bağımlılıksız SQLite araçları sunabilir
  • SQLite’ı exaequOS.com’a dahil etme planı var