· kaynak dev.to (home feed)
FlowGit: Rust ve Svelte tabanlı Git client, 85MB altı RAM ve 48 saatlik discard güvenlik ağı iddiasında bulunuyor
Bir geliştirici, Tauri, Rust ve Svelte 5 ile geliştirilen FlowGit adlı Git client'ı yayımladı; boştayken 85MB altı RAM, 48 saat boyunca kurtarılabilir discard kutusu ve rebase ile reset işlemleri için Ctrl+Z geri alma özelliği iddia ediyor.

Bir geliştirici, Rust backend ve Svelte 5 frontend ile Tauri v2 üzerine inşa edilmiş çapraz platform bir görsel Git client olan FlowGit'ı yayımladı ve mimarisini dev.to'daki iki yazıda anlattı. Bu tanıtım, mevcut Git GUI'lerine yönelik iki kronik şikâyete odaklanıyor: Electron tabanlı uygulamaların ağır kaynak tüketimi ve yanlışlıkla yapılan bir "değişiklikleri geri al" işleminin commit edilmemiş çalışmayı kalıcı olarak yok etmesi.
Paketlenmiş tarayıcı yerine yerel bir stack
dev.to'daki yazılara göre FlowGit'ın backend'i tamamen Rust ile yazıldı ve çıktısını parse etmek yerine git CLI'ya komut göndermek yerine, C bindings üzerinden doğrudan libgit2'yi çağırıyor. Arayüz ise Svelte 5'in düz JavaScript'e derlenmiş hali; commit listesi on binlerce kayda ulaştığında proxy overhead'ünden kaçınmak için framework'ün Runes reactivity'si ve ham state yönetimi kullanılıyor. Masaüstü kabuğu olan Tauri v2, her kuruluma bir Chromium kopyası taşımak yerine arayüzü işletim sisteminin kendi webview'ında渲染 ediyor — Windows'ta WebView2, macOS'ta WebKit.
Yazar tarafından bildirilen performans rakamları
Yazılardaki benchmark'lar, geliştirici tarafından yaklaşık 35.000 commit'lik bir repository üzerinde çalıştırıldı ve bağımsız olarak doğrulanmadı. İddialara göre boştayken bellek kullanımı 85MB altında, soğuk başlatma 0.4 saniyeden kısa, installer yaklaşık 30MB ve commit grafiği ekranda 50.000 commit ile 60 FPS'de kilitli. Karşılaştırma için, aynı tablolar GitKraken'ı kabaca 750MB ile 1.5GB arasında boşta RAM ve 4 ile 7.5 saniyelik açılma süreleriyle, SourceTree'yi ise 350–600MB aralığında gösteriyor — iki yazı rakip client'lar için biraz farklı rakamlar veriyor.
Grafik render yaklaşımı teknik olarak en ilginç kısım. Commit grafiği için lane topolojisi ve spline yönlendirmesi, Rust'ın rayon'u kullanılarak CPU çekirdekleri arasında paralel hesaplanıyor ve tüm canvas çizimi, ana UI thread'ini boş tutmak için ayrı bir web worker içindeki OffscreenCanvas'a devrediliyor. Virtual scrolling sayesinde görünüm 500 ya da 150.000 commit içerdiğinde bellek kullanımının sabit kaldığı iddia ediliyor.
Yıkıcı Git işlemleri için geri alma butonları
Öne çıkan güvenlik özelliği bir discard kutusu. FlowGit, bir discard sırasında diskte hiçbir şeye dokunmadan önce etkilenen hunk'ları veya dosyaları gömülü yerel bir SQLite veritabanına snapshot'lıyor. Bir trash inspector, kullanıcının atılan diff'i incelemesini ve 48 saat boyunca geri yüklemesini sağlıyor. Bu gerçek bir boşluğu dolduruyor: bir discard ile silinen commit edilmemiş değişiklikler git'in object database'inde ya da reflog'da hiçbir yerde bulunmuyor, dolayısıyla sıradan client'larda bu veri basitçe kayboluyor. İkinci mekanizma genel bir geri alma işlevi görüyor. FlowGit işlemlerin transactional bir journal'ını tutuyor; böylece yanlış bir checkout, reset, rebase, branch değişimi veya stash sonrasında Ctrl+Z'ye basmak ters geçişi hesaplayıp önceki workspace durumunu geri getiriyor. İkinci yazı ayrıca bir dizi onarım aracını daha anlatıyor: eski index.lock dosyalarının otomatik temizliği, staged secret'ları ve aşırı büyük binary'leri engelleyen bir pre-commit kontrolü ve detached HEAD'ler ile yarıda kalan rebase'ler için yönlendirilmiş düzeltmeler.
Geri kalan özellik seti
Diff görüntüleyici, VS Code'un altyapısını oluşturan Monaco üzerine kurulu; split ve unified görünümler, satır ve hunk bazında staging ve interactive blame sunuyor. Merge conflict'leri, her iki tarafı ortak atayı ve canlı sonuç önizlemesini gösteren dört panelli, three-way bir çözücü ile ele alınıyor. Bir worktree manager, ayrı klasörlerde birden fazla branch üzerinde çalışmayı sağlıyor; branch bırakılmadan önce conflict'ler konusunda uyaran bellek içi bir simülasyonla sürükle-bırak interactive rebase, bir dosyayı tüm repository geçmişinden temizleme aracı ve bir klavye komut paleti mevcut. GitHub entegrasyonu pull request incelemesini ve Actions CI loglarının canlı akışını kapsıyor. İkinci yazıya göre client ücretsiz, MIT lisanslı, telemetry toplamıyor ve çevrimdışı çalışıyor.
Neden önemli
Electron'un bellek ayak izi tanıdık bir şikâyet ve boşta 100MB altı kullanım iddia eden bir Tauri+Rust client'ı bu tartışmada faydalı bir veri noktası — şimdilik üçüncü taraf testlerden geçmemiş olsa da, ki henüz bu testleri görmedik. Daha özgün katkı ise güvenlik modeli. Yıkıcı işlemlerden önce veriyi snapshot'lamak ve geri almayı desteklemek için state geçişlerini journallamak yazılım dünyasının başka yerlerinde standart fikirlerdir ama Git GUI'lerinde nadirdir; oysa tek bir yanlış tıklama hâlâ bir öğleden sonranın commit edilmemiş işini yutabiliyor. FlowGit'ın yaklaşımı yaygınlaşırsa, bu kategorideki her client'tan geliştiricilerin beklemesi gereken çıtayı yükseltir.
- #git
- #rust
- #tauri
- #developer-tools
- #open-source
İlgili yazılar
- eKuiper'ın Rust ile yeniden yazılan sürümü, edge karşılaştırmalarında saniyede 425 bin olay ve 8 MB RAM iddiasında bulunuyor
- Vanna text-to-SQL kütüphanesi açıklama yapılmadan arşivlendi, üretim kullanıcılarını göç planı bekliyor
- Dify'nin XLS ayrıştırıcısındaki tırnak kaçış hatası, hazırlanmış hücrelerin CSV satır ve sütunları enjekte etmesine izin veriyordu