deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Rustable, açık kaynak Rust veritabanı istemcisini tarayıcı için WebAssembly'ye derliyor

Rust ile yazılmış açık kaynak bir veritabanı istemcisi olan Rustable, tarayıcı demosunda gerçek uygulamayı WebAssembly'ye derlenmiş halde çalıştırıyor; ayrıca macOS, Windows ve Linux için yerel masaüstü sürümleri sunuyor.

Rustable, açık kaynak Rust veritabanı istemcisini tarayıcı için WebAssembly'ye derliyor

Rustable adlı açık kaynak bir veritabanı istemcisi, Hacker News'te alışılmadık bir hamleyle dikkat çekti: web demosu bir ekran görüntüsü, mock-up ya da JavaScript ile yeniden yazılmış bir sürüm değil; tarayıcı içinde çalışan, WebAssembly'ye derlenmiş gerçek Rust uygulamasının kendisi. Şu anda 0.4.7 sürümünde olan proje, macOS, Windows ve Linux için yerel masaüstü sürümleri de sunuyor.

Tarayıcı demosu

Projenin sitesine göre demo çalışma alanı, bellek içinde çalışan bir Redis örneğinin yanında gerçek bir SQLite motoru çalıştırıyor ve ikisi de WASM'a derlenmiş Rust olarak yürütülüyor. Ziyaretçiler tek kullanımlık örnek veriler üzerinde tabloları gezinebilir, sorgu çalıştırabilir, satırları düzenleyebilir, veri içe ve dışa aktarabilir. Sayfayı yenilemek her iki demoyu sıfırlarken, kaydedilen sorgular tarayıcıda kalıcı oluyor. Yerel SQLite dosyaları Cmd/Ctrl+O ile açılabiliyor ve kopya olarak yüklendiği için özgün dosyalara dokunulmuyor. Redis demosu, Redis komutlarının bir alt kümesini uyguluyor; bu komutlar INFO çalıştırılarak listelenebiliyor. Gerçek veritabanı sunucularına bağlanmak için masaüstü uygulaması gerekiyor.

Ayrıca yerel bir masaüstü istemci

Masaüstü uygulaması projenin ana ürünü. macOS sürümü Apple Silicon'u hedefliyor, imzalı ve notarize edilmiş durumda ve kendini otomatik güncelliyor. Windows ve Linux için şimdilik elle güncellenen x64 taşınabilir paketler sunuluyor; Linux sürümü Ubuntu 24.04 veya uyumlu daha yeni kütüphaneler gerektiriyor. Yerleşik SSH tünelleri şu anda yalnızca macOS ve Linux'ta mevcut; Windows kullanıcıları doğrudan bağlanabilir ya da harici bir tünel kullanabilir.

Özellikler açısından istemci, ayrı pencerelerde aynı anda birden fazla bağlantıyı destekliyor ve üretim ortamı için ayrı bir renk ayrılmış durumda, böylece gözden kaçması zor. Şema gezinme, SQL sekmeleri, kaydedilmiş sorgular ve işlenmeden önce gözden geçirilebilen satır düzenlemeleri mevcut. Performans tarafında proje, yeniden kullanılan bağlantılara, büyük sonuç kümeleri için sanallaştırılmış satırlara ve işlerin UI thread dışında tutulmasına dikkat çekiyor.

Tek egui kod tabanı, iki hedef

Kullanıcı arayüzü, sabit bir kare hızı yerine monitörün yenileme hızında yeniden çizebilen, GPU ile render eden bir Rust GUI toolkit'i olan egui ile oluşturulmuş. egui yerel platform bileşenlerine dayanmak yerine kendi widget'larını çizdiği için aynı arayüz kodu WebAssembly'ye derlenebiliyor — tarayıcı demosunun var olmasının nedeni de tam olarak bu. Proje, uygulama kodunun tamamen Rust olduğunu, bu iddiadan yalnızca paketleme ve benchmark script'lerinin muaf tutulduğunu belirtiyor.

Veritabanı desteği

Beş motor destekleniyor: Önce PostgreSQL ve SQLite geldi, ardından test edildiği belirtilen MySQL 8.4 ve MariaDB 11.4, son olarak da anahtar gezinme, komut çalıştırma, string düzenleme ve TTL kontrolleri sunan bağımsız Redis 7.4 eklendi. Redis sunucu bağlantıları yalnızca masaüstünde mevcut; Redis Cluster ve Sentinel dahil değil. Yol haritasında daha fazla veritabanı motoru var.

Projenin SSS'si kodun nasıl ortaya çıktığı konusunda açık sözlü: kodun Astra adını verdiği bir yapay zeka asistanının yardımıyla yazıldığını kabul ediyor ve kuşkucuları herkese açık kaynak koda yönlendiriyor.

Neden önemli

Tarayıcıda çalıştığını iddia eden geliştirici araçlarının çoğu iki kamptan birine girer: özgün aracın JavaScript ile yeniden yazılmış hali ya da asıl işin bir sunucuda yapıldığı ince bir istemci. Rustable, araç geliştiricilerine üçüncü bir yol gösteriyor: mevcut Rust uygulamasını WebAssembly'ye derlemek ve herkesin gerçek şeyi — SQLite sorguları, Redis komutları, satır düzenleme — hiçbir şey yüklemeden ve ağır işi yapan bir backend olmadan, yalnızca sayfayı sunan bir yapıyla denemesini sağlamak.

Küçük bir proje için bu aynı zamanda bir dağıtım stratejisi olarak da işe yarıyor. Demo fiilen pazarlamanın kendisi, masaüstü uygulaması ise tarayıcının başaramayacağı işleri — örneğin ağ üzerinden gerçek veritabanı sunucularına erişmeyi — üstleniyor. Ayrıca bu durum, GUI tabanlı geliştirici araçları için Rust'tan WASM'a giden yolun yararlı bir veri noktası: tek kod tabanı, hem yerel hem tarayıcı hedefleri ve ikisini de kapsayacak kadar esnek olduğunu kanıtlayan egui. v0.4.7 sürümünde yazılım hâlâ erken aşamada ve kusurlar bulunuyor; ancak izlemeye değer olan, tek tek özellikler değil mimarinin kendisi.

  • #rust
  • #webassembly
  • #database
  • #developer-tools
  • #open-source

İlgili yazılar