// the find
spacedriveapp/spacedrive
Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.
Spacedrive is an ambitious cross-platform file manager that layers a virtual distributed filesystem on top of your existing storage, syncing metadata P2P via Iroh/QUIC without a central server. It targets power users who want a unified view across local drives, external storage, NAS, and cloud providers. Think of it as a metadata layer and search index, not a replacement for Finder/Explorer.
- The tech stack choices are coherent and well-reasoned: BLAKE3 for content hashing, Iroh/QUIC for P2P (replacing an older libp2p approach), HLC-ordered leaderless sync, and OpenDAL for cloud storage abstraction — these are the right tools for the problem.
- Specta for auto-generating TypeScript types from Rust types is a genuine quality-of-life win that eliminates a whole class of API mismatch bugs between the Rust core and the React frontend.
- The adapter system for external data sources (Gmail, Obsidian, Slack, etc.) is pragmatically designed — a folder with a TOML manifest and a script that reads stdin and prints lines. Low barrier to write new adapters, no SDK lock-in.
- The .tasks/ directory contains detailed, numbered design documents for every subsystem (LSYNC, INDEX, NET, etc.), which is rare and genuinely useful for contributors trying to understand intent rather than just reading code.
- The FSL-1.1-ALv2 license is a real adoption blocker — it's not OSI-approved open source, it restricts commercial use for two years, and 'converts to Apache 2.0 after two years' is a promise, not a guarantee. Anyone building something on top of this needs to read the fine print carefully.
- Large chunks of the codebase are commented out in Cargo.toml (the old desktop Tauri crates, mobile core, cloud app), and the .tasks/ tree reveals the project is in the middle of a significant v2 rewrite. The gap between what the README describes and what's actually shipping in a stable form is unclear from the outside.
- The dependency on a git branch of specta (`branch = 'main'`) rather than a published crate version is a supply chain and reproducibility risk — if that branch force-pushes or the API changes, builds break without a clear diff.
- Mobile support (React Native + Expo) is structurally separate from the desktop (Tauri) and shares UI through a packages/interface layer, but the Android/iOS Rust bridge is listed as excluded from the workspace in Cargo.toml, suggesting mobile is significantly behind desktop in capability despite being listed as a first-class target.