The Spacedrive featured in this issue is an open source cross-platform file manager powered by a virtual Distributed file system (VDFS) written in Rust.
Organize files on multiple devices in one place. From cloud services to offline hard drives, Spacedrive consolidates the storage capacity and processing power of your devices into a personal distributed cloud that is secure and intuitive to use.
For independent creatives, hoarders, and those who want to own their own digital footprint. Spacedrive offers a unique file management experience, and it’s completely free.
What is VDFS?
VDFS (Virtual Distributed File System) is a file system designed to work on top of various storage layers. It is not limited to a single machine and has a unified API to manipulate and access content across multiple devices. It does this by maintaining a virtual index of all storage locations and synchronizing the database in real time between clients. This implementation also uses CAS (Content Addressable Storage) to uniquely identify the file while recording the logical file path relative to the storage location.
Spacedrive Development roadmap
Finished (still testing) :
File Discovery – Scans devices, drives, and cloud accounts to build a directory of all files containing metadata.
Preview generation – Automatically generates lower resolution stand-ins for images and videos.
In progress:
Statistics – total capacity, index size, preview media size, available space, etc.
File Explorer – Browse online/offline storage locations, view files with metadata, perform basic CRUD.
Real-time synchronization – real-time synchronization of data indexes between devices, with priority given to point-to-point LAN connections (WiFi synchronization).
Self-hosted – Spacedrive can be deployed as a service, just like another device powering your personal cloud.
to be developed (MVP) :
Photos – Photo and video albums similar to Apple/Google Photos.
Search – Use key bindings to search in depth for your file system, including offline locations.
Tags – Define routines on custom tags to automate workflows and easily tag files individually, in batches, and automatically by rules.
Extensions – Build tools on top of Spacedrive, extend functionality, and integrate third-party services. [spacedrive. App/extensions on the extensions directory. < / p >
to be developed (post-MVP) :
Spacedrive Cloud – We will host an always-on cloud device for you with a pay-as-you-go storage plan.
Cloud Integration – Index and backup to Apple Photos, Google Drive, Dropbox, OneDrive, and Mega + simple apis for the community to add more content.
Encrypted Vault – easily manage and encrypt sensitive files, built on top of VeraCrypt. Encrypt individual files or create a flexible size vault.
Key Manager – View, install, uninstall, and hide keys. The installed key automatically unlocks various areas of the file system.
Redundant targets – ensure that a specific number of copies of your important data exist, discover files at risk and monitor the health of your devices/drives.
Timeline – View a linear timeline of content, travel to any time and see the media presented visually.
Media encoder – encodes video and audio into various formats, using tag automation. Built with FFMPEG.
Staff – Unified use of the computing power of the device to encode and perform tasks ata faster rate.
Developer Installation instructions
This environment uses Cargo and pnpm. Make sure you install them before continuing.
GIT pull:
$ git clone https://github.com/spacedriveapp/spacedrive
$ cd spacedrive
$ pnpm i
$ pnpm prep- Run all the necessary code generation and build the required dependencies.
prep to quickly run desktop applications only after you can use them:
$ pnpm desktop dev
Run the login page
$pnpm web dev- Runs the embedded web application
$ pnpm landing dev
If you’re having problems, make sure you’re using the following versions of Rust and Node:
- Rust version: 1.58.1
- Node version: 17
Single warehouse structure
Application:
- desktop: Tauri application with embedded Rust binaries. sdcore
- mobile: React Native application with embedded Rust binaries. sdcore
- web: A React webapp as a lightweight wrapper, interface with a websocket transport.
- landing: A React application using Vite pages, Tailwind Typography
Core:
- core: Rust core, internally called sdcore. Contains file system, database, and network logic. Can be deployed in a variety of host applications.
< Set:
- client: A TypeScript client library for handling data flows through RPC between the UI and the Rust core.
- ui: a React shared component library.
- interface: Complete user interface in React (desktop, web, and landing by applications)
- config:eslint configuration (including eslint-config-next,eslint-config-prettier, and tsconfig.json all the configurations used on monorepo.
- macos: Swift Native binary for MacOS system extensions.
- ios: a Swift Native binary (planned).
- windows: a C# native binary (planned).
- android: a Kotlin Native binary (planned).
—END—
Open source protocol: GPL-3.0 License