spacedrive/README.md

49 lines
3.6 KiB
Markdown
Raw Normal View History

2021-12-25 00:50:42 +00:00
# Spacedrive
2021-12-29 05:44:39 +00:00
<!-- Spacedrive is a cross-platform file manager that brings the convenience of the cloud to your own private network. Designed specifically for independent creatives. -->
2021-12-24 09:13:21 +00:00
2021-12-29 05:44:39 +00:00
Spacedrive is a privacy-first, open source, virtual filesystem—powered by your devices in unison. The benefits of the cloud, owned and controlled by you through a single directory representing your entire digital life, synchronized in realtime between devices.
<!-- Streamline ingesting and sorting media such as screenshots, photos, OBS recordings, code repositories—virtually anything, even NFTs. -->
## Features
2021-12-29 06:45:15 +00:00
- **File indexing** - Scan your devices, drives, removable storage and cloud accounts to build a virtual "yellow pages" directory of all your data.
2021-12-29 06:41:24 +00:00
- **Realtime synchronization** - sync data between devices securely in realtime.
2021-12-29 06:45:15 +00:00
- **Photos** - Beautiful photo and video albums similar to Apple/Google photos.
2021-12-29 06:41:24 +00:00
- **Search** - Search your entire index at the press of a keybind, including offline devices, drives and clouds.
- **Cloud integration** - Google Drive, Dropbox, OneDrive & Mega + easy API for the community to add more.
- **Encrypted vault(s)** - Effortlessly manage & encrypt sensitive files, built on top of VeraCrypt. Encrypt individual files or create flexible-size vaults.
- **Key manager** - View, mount, dismount and hide keys. Mounted keys automatically unlock respective areas of your filesystem.
- **Smart tags** - Define routines on tags to automate workflows.
2021-12-29 06:45:15 +00:00
- **Extensions** - Build tools on top of Spacedrive, extend functionality and integrate third party services. Extension directory on [spacedrive.co/extensions](#).
2021-12-29 06:41:24 +00:00
- **Manage redundancy** - Ensure a specific amount of copies exist for your important data, discover at-risk files and monitor device/drive health.
- **Media encoder** - Encode video and audio into various formats, use Tags to automate.
2021-12-29 06:45:15 +00:00
- **Self host** - Spacedrive can be deployed as a service, behaving as just another device powering your personal cloud.
- **SpaceCloud** - We'll host an always-on cloud device for you, with pay-as-you-go plans for storage.
2021-12-29 05:44:39 +00:00
## Motivation
With a cultural boom of independent creatives there is a lack of tools to support the ever increasing amount of data accumulated. Cloud services have great features, but require your content to be *in* the cloud to benefit from them. For most creators a 50GB OBS recording is just not convenient to upload.
I believe, in the advent of web3, we need to control and own our own data portfolios, not cloud companies. One uniform way to track, organize, back-up, share, encrypt and view an unlimited amount of data, not locking into a single provider and living within their limits.
## Architecture
Spacedrive's core is written in pure Rust, with a web based Typescript React UI and native binaries to support additional functionality per platform.
2021-12-24 09:13:21 +00:00
2021-12-25 00:50:42 +00:00
## Apps
- `desktop`: a [Tauri](https://nextjs.org) app
- `mobile`: a [React Native](https://nextjs.org) app
2021-12-24 09:13:21 +00:00
- `web`: another [Next.js](https://nextjs.org) app
2021-12-25 00:50:42 +00:00
- `docs`: a [Next.js](https://nextjs.org) app
## Packages
2021-12-29 05:44:39 +00:00
All TypeScript packages are compiled automatically using Turborepo.
2021-12-25 00:50:42 +00:00
- `core`: the [Rust]() core logic library, referred to internally as `sdcorelib`
- `state`: the [TypeScript]() core logic library
- `ui`: a [React Native]() / [RNW]() component library
- `config`: `eslint` configurations (includes `eslint-config-next`, `eslint-config-prettier` and all `tsconfig.json` configs used throughout the monorepo
2021-12-29 05:44:39 +00:00
- `native-macos`: a [Swift]() native binary
- `native-ios`: a [Swift]() native binary
- `native-windows`: a [C#]() native binary
- `native-android`: a [Kotlin]() native binary
2021-12-24 09:13:21 +00:00
2021-12-29 05:44:39 +00:00
##