Spacedrive: A File Explorer from the Future
Spacedrive is an open source cross-platform file manager powered by a virtual distributed filesystem (VDFS) written in Rust. It aims to provide a secure and intuitive file management experience, combining the storage capacity and processing power of multiple devices into one personal distributed cloud.
Note : Spacedrive is currently under active development, and most of the listed features are still experimental and subject to change.
Features
Virtual Distributed Filesystem (VDFS): Spacedrive utilizes a VDFS to organize files across multiple devices and storage layers. It maintains a virtual index of all storage locations and synchronizes the database between clients in real-time.
Cross-Platform Support : Spacedrive is designed to work seamlessly across various operating systems, including macOS, Windows, Linux, iOS, watchOS, and Android.
Secure and Personal Cloud : With Spacedrive, users can create their own personal distributed cloud, combining the storage capacity and processing power of their devices. This provides increased security and ownership over their data.
Free File Management Experience : Spacedrive offers a free file management experience like no other, catering to independent creatives, hoarders, and anyone who wants to own their digital footprint.
Screenshots
Community and Development
Join the Spacedrive community and stay updated with the latest developments:
License
Spacedrive is licensed under the AGPL v3.0. For more information, refer to the GNU General Public License v3.0.
Development Architecture
Spacedrive uses the "PRRTT" stack (Prisma, Rust, React, TypeScript, Tauri) for its development architecture:
Prisma : Prisma is used on the front-end, thanks to prisma-client-rust by Brendonovich. It provides access to the Prisma migration CLI and syntax for the schema. The application bundles with the Prisma query engine and codegen, offering a powerful Rust API.
Tauri : Spacedrive uses Tauri to create a pure Rust native OS webview, resulting in a smaller bundle size and lower memory usage compared to traditional Electron apps. Tauri contributes to a more native feel, especially on macOS, thanks to Safari's close integration with the operating system.
rspc : The project utilizes rspc, which allows defining functions in Rust and calling them on the TypeScript frontend in a typesafe manner, reducing the chance of bugs making it into production.
-
sdcore : The core of Spacedrive, referred to as
sdcore
, is written in pure Rust and handles filesystem, database, and networking logic. It can be deployed in a variety of host applications.
Monorepo Structure
The Spacedrive repository follows a monorepo structure with the following components:
Apps
-
desktop
: A Tauri app for desktop platforms. -
mobile
: A React Native app for mobile platforms. -
web
: A React web app. -
landing
: A React app using Vite SSR & Vite pages for the landing page.
Core
-
core
: The Rust core, known assdcore
, containing filesystem, database, and networking logic. It can be deployed in various host applications.
Packages
-
client
: A TypeScript client library that handles data flow via RPC between the UI and the Rust core. -
ui
: A shared React component library. -
interface
: The complete user interface in React, used by thedesktop
,web
, andlanding
apps. -
config
: ESLint configurations, includingeslint-config-next
,eslint-config-prettier
, and alltsconfig.json
files used throughout the monorepo. -
macos
: A Swift native binary for macOS system extensions. -
ios
: A planned Swift native binary for iOS. -
windows
: A planned C# native binary for Windows. -
android
: A planned Kotlin native binary for Android.
For detailed instructions on how to install and contribute to Spacedrive, please refer to the contributing guide.
What is a VDFS?
A VDFS (Virtual Distributed Filesystem) is a filesystem designed to work across a variety of storage layers. It provides a uniform API for manipulating and accessing content across multiple devices, eliminating the limitations of a single machine. A VDFS maintains a virtual index of all storage locations, synchronizing the database between clients in real-time. It uses Content-Addressable Storage (CAS) to uniquely identify files while keeping a record of logical file paths relative to the storage locations.
The concept of a VDFS was introduced in a UC Berkeley paper by Haoyuan Li. While the paper focuses on its use in cloud computing, the underlying concepts can be applied to open consumer software.
Motivation
Spacedrive aims to address the challenges of managing multiple cloud accounts, unbacked drives, and data at risk of loss. Traditional cloud services have limited capacity and lack interoperability between services and operating systems. Spacedrive envisions a future where photo albums and data are not tied to device ecosystems or harvested for advertising. It aims to provide an OS-agnostic, permanent, and personally owned file management solution. By leveraging open-source technology, Spacedrive aims to empower users to retain absolute control over the data that defines their lives, with unlimited scalability.
Roadmap
To explore the planned features of Spacedrive, visit the spacedrive.com/roadmap page for a comprehensive list.
Spacedrive is an ambitious project with a roadmap that outlines upcoming enhancements and features. As it continues to evolve, Spacedrive strives to deliver an unparalleled file management experience for users.
Spacedrive is an exciting open-source project that envisions a future where file management is
seamless, secure, and user-centric. With its unique features, cross-platform support, and focus on user ownership, Spacedrive aims to revolutionize how we interact with our digital data. Join the community and be a part of shaping the future of file management.
Top comments (0)