Spacedrive - Açık kaynak tabanlı çapraz platform dosya gezgini
(github.com/spacedriveapp)- Spacedrive, birden çok cihaz ve buluttaki dosyaları tek bir yerde yöneten bir cross-device data platform olup; dosyaları, e-postaları, notları ve harici kaynakları indeksler ve arar, ayrıca P2P ile senkronize eder
- Finder veya Explorer'ın yerini almaz; OS dosya yöneticisinin üzerinde çalışan, yerel diskleri, harici sürücüleri, NAS'i, bulut depolamayı ve arşiv veri kaynaklarını arayıp gezmeyi sağlayan bir üst katman görevi görür
- Tüm dosyalara BLAKE3 içerik hash'i atayarak aynı dosyayı aynı hash ile tanımlar; böylece birden çok cihaz genelinde yinelenenleri izleme ve tekilleştirme mümkün olur
- Cihazlar arası senkronizasyon, Iroh/QUIC tabanlı P2P sync ile doğrudan bağlanır; sunucu, bulut veya tek hata noktası olmadan meta verileri senkronize eder ve dosyaları özgün konumlarında tutar
- S3, Google Drive, Dropbox, OneDrive, Azure ve GCS'yi yerel depolamayla birlikte cloud volumes olarak indeksler; Gmail, Apple Notes, Chrome Bookmarks, Slack, GitHub gibi kaynaklar da script tabanlı adaptörlerle aranabilir depolara dönüşür
- Spacebot ile entegre olarak, isteğe bağlı ayrı bir süreçte AI agent runtime çalıştırır; Spacedrive veri, izin ve yürütme katmanını üstlenirken Spacebot zekayı sağlar
- Her Spacebot örneği bir Spacedrive düğümüyle eşleştirilir; ilgili düğüm agent kimlik doğrulamasını, cihaz grafiğinin korunmasını, izin çözümlemeyi ve eş cihazlara iş iletimini yürütür
- Dosya okuma, shell komutları ve görevler Spacedrive üzerinden hedef cihaza proxy edilir; erişilebilen cihazlar, yollar, görevler ve insan onayı gerekip gerekmediği izin sistemi tarafından yönetilir
- Etkinleştirildiğinde, indekslenecek kayıtlar aranabilir hale gelmeden önce Safety Screening hattından geçer
- Prompt Guard 2, e-posta, mesaj ve belgelerdeki prompt injection'ı yerel bir sınıflandırıcıyla tespit eder
- Güven katmanları, yalıtım sistemi ve içerik çitlemesi sayesinde işaretlenen kayıtlar AI agent sorgularından hariç tutulur ve masaüstü uygulamasında incelenebilir
- Çekirdek mimari; Virtual Distributed Filesystem, içerik tanımlama sistemi, işlemsel aksiyonlar ve lidersiz senkronizasyondan oluşur
- Dosya ve klasörler fiziksel konumdan bağımsız nesnelere dönüşür ve her dosya, birden çok cihazda çalışan
SdPathadresine sahip olur - Dosya işlemleri, yürütmeden önce önizleme, onay veya iptal sunar ve ağ kesintileriyle cihaz yeniden başlatmalarına dayanabilen kalıcı işler biçiminde çalışır
- Dosya ve klasörler fiziksel konumdan bağımsız nesnelere dönüşür ve her dosya, birden çok cihazda çalışan
- Uygulama, Rust tek crate'i ve CQRS/DDD mimarisi üzerine kuruludur; başlıca teknolojiler olarak Tokio, SQLite, SeaORM, sqlx, Iroh, BLAKE3, LanceDB, FastEmbed, OpenDAL, Tauri 2, React Native, React 19, Vite, TanStack Query, Tailwind CSS v4 ve Specta kullanılır
- Masaüstü uygulaması macOS, Windows ve Linux'u; mobil uygulama iOS ve Android'i hedefler; ayrıca CLI, daemon, headless server ve browser client yapıları da bulunur
- Çalıştırma gereksinimleri Rust 1.81+, Bun 1.3+, just ve adaptörler için Python 3.9+'dır; geliştirme komutları olarak
just setup,just dev-desktop,just testkullanılır - Gizlilik ve güvenlik modeli local-first'tür; P2P trafiği QUIC/TLS ile şifrelenir, kütüphaneler SQLCipher ile disk şifrelemeyi destekler ve izleme ya da analiz amaçlı telemetri yoktur
- Lisans FSL-1.1-ALv2 Functional Source License'dır ve 2 yıl sonra Apache 2.0'a geçer
1 yorum
Hacker News yorumları
Kurulumdan hemen sonra kütüphane oluşturma, analiz verilerini paylaşma ve giriş yapma istemesi, diğer dosya gezginlerinden beklediğimden farklıydı.
Sürücüde rastgele bir dizine gidip çift tıkladım ama hiçbir şey olmadı; bağlam menüsünden açınca da aynıydı.
Meğer bir dizinde 15 bin dosya varsa gezinme fiilen imkânsız hale geliyormuş.
Total Commander ve Windows Explorer’da böyle bir sorun yok; bu yüzden Spacedrive’ın önce temel dosya gezgini işlevlerini daha fazla olgunlaştırması gerekiyor gibi.
Spacedrive, buradaki bazı yanıtlardan farklı olarak büyük veri düşünülerek tasarlandı; Location’ları önceden indeksleyip önbellek oluşturuyor, her şeyi önbelleğe alıp sanallaştırıyor.
Bir sonraki güncellemede Location olmayan yerlerde gezinirken oluşan hatayı düzelteceğiz; birçok kullanıcı Location olarak eklemeden önce önce gezinmeyi deniyor gibi görünüyor.
Henüz alfa yazılım olduğu için zamanla olgunlaştıracağımızı umuyoruz.
Bunu yalnızca geliştiricilere yüklemek zor; bence framework bunu varsayılan olarak desteklemeli.
Sanallaştırılmış listeleri anlamak zorunda kalınmamalı.
SwiftUI ile TableView yaptığımda, iç işleyişini hiç bilmeden binlerce öğeyi kaydırabiliyordum.
Sıralama düzeni önbelleği olmadığı için alfabetik olmayan bir şekilde açarsanız sıralama yaparken 5 dakikadan fazla beklemeniz gerekiyor.
Oldukça uzun zaman önce baktığımda doğrudan deneyebileceğim bir sürüm paketi yoktu; hazır olunca tekrar kontrol etmeyi düşünmüştüm. Görünüşe göre bir saat önce alfa sürüm çıkmış ve bu yüzden HN’de yeniden gündeme gelmiş.
Fikir olarak sevindirici.
Günümüzde katı biçimde yerel dosyalar ile çeşitli bulut depolama alanları arasındaki sınır belirsizleşti.
Ben şahsen bu sınırı koruyor ve Mac’e bulut depolamayı neredeyse hiç bağlamıyorum; ama akademisyen olan eşim Dropbox, iCloud Drive, Google Drive ve Microsoft tarafındaki depolamaların hepsiyle çalışıyor.
Çünkü birlikte çalıştığı kişiler dosyaları bu servisler üzerinden paylaşıyor ve inceleme iş birliklerini yürütüyor.
Böyle bir araç, tedarikçiye özel bağlantı sorunlarını ve tuhaf davranışları gizleyip yerel gibi görünen ama arkasında herhangi bir bulut depolamanın bağlı olabileceği şeffaf bir dosya sistemi sunarsa iş akışına epey yardımcı olur.
Kilit nokta kullanılabilirlik; gecikme yüksek olup Finder’dan daha yavaş hissettirirse potansiyeli azalır.
Hacker News’in bu ürün için en uygun kullanıcı kitlesi olmama ihtimali yüksek.
Buradaki insanların zaten kendi optimize edilmiş iş akışlarına sahip olma olasılığı yüksek; ben de öyleyim.
Bu ürün Windows ve Mac kullanan ama terminale aşina olmayan dijital içerik üreticilerine daha uygun gibi.
Animatörler, illüstratörler, video editörleri, 3D sanatçıları, müzik prodüktörleri, YouTuber’lar ve yayıncılar gibi kişiler.
Ancak bu ikinci grubun gerçekten böyle bir şey isteyip istemediğinden emin değilim.
Pazarlamaya bakınca yazılımın tam olarak ne yaptığı anlaşılmıyor; o grup için de aynı olacağını düşünüyorum.
“Evrensel dosya deneyimi” demeye çalıştığını anlıyorum ama bunun somut olarak ne anlama geldiği belirsiz.
Kullanıcılar özellikleri anlamak için yazılımı kurmak zorunda kalmamalı.
Açık kaynak olması ya da Linux’ta çalışması da onlar için pek önemli görünmüyor.
Bu aşamada pazarlamayı tamamen yeniden yapar ve o ikinci gruba göre optimize ederdim.
Bir PR sorumlusu veya pazarlama uzmanıyla birlikte, oluşturulan değerin ne olduğunu somut ve etkili biçimde aktarmak daha iyi olur.
Ayrıca ekibin emeğini korumak için kaynak deposunu kaldırır ve Linux sürümünü de durdurur ya da talep oluşana kadar özel tutardım.
Bol şans.
Oldukça uzun süredir takip ediyorum ve birkaç geri bildirimim var.
Tek bir yerel geliştirme dizinini indekslemek şimdiye kadar 35 dakikadan fazla sürdü; muhtemelen bitmesini beklemeyeceğim.
Başkalarının söylediği gibi gecikme bir sorun.
macOS M1 14 inç temel modelde, Location ekledikten sonra bile bir klasörü açıp dosyaların görünmesi bazen 2–4 saniye sürüyor.
Ben kaçırmadıysam henüz sekmeler yok gibi.
Dosya sıralama ve gruplama özellikleri aşırı zayıf ya da fiilen yok; ama geliştirme sürecinde iyileşeceğini düşünüyorum.
Makul bir indeks durumu oluşturmak için Location’ları elle çokça eklemek gibi kullanıcının yapması gereken fazla iş var gibi görünüyor.
Yerel öncelikli olduğunu anlıyorum ama telemetri ve giriş yaklaşımı hiç hoşuma gitmedi.
Genel olarak bizzat deneyince biraz hayal kırıklığına uğradım; bana uymama ihtimali yüksek, ama hedef kullanıcıları olabilir ve önünde hâlâ yol var.
Görünüşü gerçekten çok iyi.
Bunun neden React ile yapıldığını merak ediyorum.
Rust’ta Qt gibi bir GUI framework’ü olmadığını anlıyorum ama yine de bunun doğru cevap olup olmadığını sorguluyorum.
Yeni bir şey öğrenmek istemedikleri için mi?
C++ uygulaması ya da Qt ile gayet yapılabilir; GUI QML ile yazılır, Lua, Python, JavaScript de betik dili olarak bağlanabilir.
Elbette bu bir iş.
Tarayıcıyla render etmek, GUI’yi OpenGL gibi bir GPU API’siyle yapmanın daha kolay bir sürümüne yakın.
İşletim sisteminde zaten GUI araçları var; onları kullanmak yeterli.
Bunun dışında oldukça iyi görünüyor ama pcmanfm gibi şeylerin de uzak konum eklemeyi desteklediğini sanıyorum.
Bir diğer merak ettiğim şey de neden Prisma kullandıkları.
Tauri, yüksek performanslı işler veya işletim sistemi entegrasyonu gerektiğinde Rust’a inmesini kolaylaştırıyor; başlıca platformlar için paketleme de hazır geliyor.
React kullanınca çok sayıda UI bileşeninin zaten bulunduğu güçlü bir ekosistemden yararlanabiliyorsunuz.
Çoğu yerel Rust GUI framework’ünden farklı.
Ayrıca frontend mühendislerini ve onların web teknolojileri ile tasarımcılarla çalışma becerilerini yeniden kullanabiliyorsunuz.
Qt kadar olgun olmadıkları söylenebilir; ama tarayıcıda çalışan bir şeyle karşılaştırıldığında çoğu durumda yeterliler.
Bu deponun erken alfa aşamasında olduğu ve bilinen çok sayıda hatası bulunduğu hâlde bu kadar çok GitHub yıldızı almış olması biraz inanması zor
Üstelik VC yatırımı almış gibi görünüyor; bu, langchain ya da pinecone’un yatırım almasından bile daha kafa karıştırıcı
Onlar en azından AI tabanlı projeler, ama bu proje zaten çokça ele alınmış bir alan
Sonsuza kadar ücretsiz olsa bile insanların isteyeceğini sanmıyorum; reklam, izleme ya da aylık abonelik girerse hiç istemezler
Temelde güvenmek için bir neden yok, kuşkulanmak içinse çok neden var
Kişisel bir saldırı değil ama bu bakış açısını düşünmediyseniz düşünmenizde fayda var
“welcome”dan sonraki ilk ekran giriş ekranı
Bir dosya gezgini için neden giriş yapmam gerektiğini bilmiyorum; tuhaf bir çağdayız
Giriş yapma nedeni, bunun uzak bir dosya sistemi olması
Dosya gezgininden ziyade Dropbox’ı düşünmek daha doğru
Bir sonraki güncellemede değişecek
Sonuçta giriş, Tailscale gibi cihazları hızlıca bağlamanın bir yolu olacak
Dağınık hâldeki bulut ve yerel, takılı ve takılı olmayan depoların tümünü kapsayan aranabilir ve gezilebilir bir meta dizin kesinlikle ilgi çekici; bir süredir bir tür kutsal kâse gibi görülüyordu
Dijital varlık yönetimi yeni bir kavram değil, ancak şu anda seçeneklerin bol olduğu bir alan da değil
Portfolio ya da Adobe’nin karmaşık ürün paketi bu tür işlevlerin çoğunu sunuyor, ama bulut depolamadan çok iş akışlarına ve meta verilere odaklanıyor
Günümüzde bir başka bulut bağımlı hizmeti devreye almak için çok dikkatli olmak gerekiyor
“Yerel ve çevrimdışı dosyalar dâhil tüm dosyalar”ın hassasiyeti düşünüldüğünde self-hosted/on-premises mutlak bir gereksinim olabilir
Hesap gerekiyorsa OIDC ya da SAML üzerinden mevcut kimlik yönetimiyle entegrasyon istenecektir
Bu araç tüm dosyalar için vazgeçilmez tek arayüz hâline gelir ve üzerine iş akışları kurulursa, erişilebilirliğinden emin olunabilecek süreklilik özellikleri de gerekir
Devam etmenizi dilerim
Bunu henüz tamamen çözmüş kimse yok
Proje havalı görünüyor, iddiası da hoşuma gitti
Birkaç notum var
Tüm WAN erişimi için net bir tek anahtar olmalı; analiz verisi ya da kullanım verisi gönderimi için ayrı anahtarlar da olmalı ve varsayılan olarak kapalı gelmeli
Daha da iyisi, bunları derleme zamanı bayrakları yapmak olur
Geçmişte Warp adlı yeni bir terminal çok çekiciydi ama varsayılan olarak ağ üzerinden veri gönderdiği için birçok kişi açısından anında elenme sebebi oldu
Windirstat ve Everything’den bolca ilham almanız iyi olur; özellikle Everything’in arama performansını hedeflemeniz iyi olur
Yol haritasında gördüm ama tekrar söyleyeyim: sekmeler gerekli
Prisma’dan uzaklaşmayı da düşünmenizi öneririm
Veritabanını fazla sarıyor ve içinde çok fazla sihir var
Dayanağım zayıf olabilir ama bir gün lisansı değiştirmelerinden biraz endişeliyim
README’nin başındaki written in Rust ifadesinin bir özellik gibi ele alınmasının artık bırakılmasını isterim
Böyle bir ifade gördüğümde “daha kararlı olur” değil, “birinin hobi projesiymiş” diye hissediyorum
README’den bahsediyorsanız, açık kaynaklı bir projede ilgili bir ayrıntı olarak yer alması makul görünüyor