spacedriveapp / spacedrive
- вторник, 26 апреля 2022 г. в 00:32:00
Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.
The universal file manager.
spacedrive.app »
Download for
macOS
·
Windows
·
Linux
·
iOS
·
watchOS
·
Android
~ links will be added once release available ~
NOTE: Spacedrive is under active development, most of the listed features are still experimental and subject to change. Additionally, most of the links on this page are broken but will be working once the repository is made public.
A VDFS (virtual distributed filesystem) is a filesystem designed to work atop a variety of storage layers. It is not restricted to a single machine, with a uniform API to manipulate and access content across many devices. It achieves this by maintaining a virtual index of all storage locations, synchronizing the database between clients in realtime. This implementation also uses CAS (Content-addressable storage) to uniquely identify files, while keeping record of logical file paths relative to the storage locations.
The first implementation of a VDFS can be found in this UC Berkeley paper by Haoyuan Li. This paper describes its use for cloud computing, however the underlying concepts can be translated to open consumer software.
Many of us have multiple cloud accounts, drives that aren’t backed up and data at risk of loss. We depend on cloud services like Google Photos and iCloud, but are locked in with limited capacity and almost zero interoperability between services and operating systems. Photo albums shouldn’t be suck in a device ecosystem, or harvested for advertising data. They should be OS agnostic, permanent and personally owned. Data we create is our legacy, that will long outlive us—open source technology is the only way to ensure we retain absolute control over the data that defines our lives, at unlimited scale.
Note: Links are for highlight purposes only until feature specific documentation is complete.
Complete: (in testing)
In progress:
To be developed (MVP):
To be developed (Post-MVP):
This environment uses Cargo and pnpm. Ensure you have them installed before continuing.
$ git clone https://github.com/spacedriveapp/spacedrive
$ cd spacedrive
$ pnpm i
$ pnpm prep
- Runs all necessary codegen & builds required dependencies.To quickly run only the desktop app after prep
you can use:
$ pnpm desktop dev
To run the landing page
$ pnpm web dev
- runs the web app for the embed$ pnpm landing dev
If you are having issues ensure you are using the following versions of Rust and Node:
This project is using what I'm calling the "PRRTT" stack (Prisma, Rust, React, TypeScript, Tauri).
sdcore
) is written in pure Rust.desktop
: A Tauri app with embedded sdcore
Rust binary.mobile
: A React Native app with embedded sdcore
Rust binary.web
: A React webapp as a light wrapper around the interface
with a websocket Transport.landing
: A React app using Vite pages, Tailwind Typographycore
: The Rust core, referred to internally as sdcore
. Contains filesystem, database and networking logic. Can be deployed in a variety of host applications.client
: A TypeScript client library to handle dataflow via RPC between UI and the Rust core.ui
: A React Shared component library.interface
: The complete user interface in React (used by apps desktop
, web
and landing
)config
: eslint
configurations (includes eslint-config-next
, eslint-config-prettier
and all tsconfig.json
configs used throughout the monorepo.macos
: A 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).