From 38fc130ae92b7182900a86d020b3bf6acda1b670 Mon Sep 17 00:00:00 2001 From: Jamie Date: Tue, 28 Dec 2021 21:44:39 -0800 Subject: [PATCH] readme --- README.md | 72 ++++++++++++--------------- packages/core/bindings/ClientEvent.ts | 2 + 2 files changed, 34 insertions(+), 40 deletions(-) create mode 100644 packages/core/bindings/ClientEvent.ts diff --git a/README.md b/README.md index e7be6dcc5..2375870d9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,31 @@ # Spacedrive -The worlds first private virtual filesystem. + +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. + + + +## Features +- **File Indexing** - scan your devices, drives, removable storage and cloud accounts to build a virtual "yellow pages" directory of your data +- **Realtime synchronization** - sync data between devices securely in realtime +- **Photos** - gallery & album organizer +- **Search** - find anything in a heartbeat, including offline drives +- **Cloud integration** - GDrive, Dropbox & Mega +- **Encrypted vault(s)** - Effortlessly manage & encrypt sensitive files, built on top of VeraCrypt +- **Key manager** - view keys, hide keys, mount keys, dismount keys +- **Smart tags** - define routines on tags to automate workflows +- **Extensions** - Build tools on top of Spacedrive +- **Manage redundancy** - Ensure multiple copies of your important data exist, track at risk files and +- **Self host** - Spacedrive can run in the cloud, acting as just another one of your devices always on. +- **SpaceCloud** - we'll host a cloud device for you, with pay-as-you-go plans. + +## 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. ## Apps - `desktop`: a [Tauri](https://nextjs.org) app @@ -9,48 +34,15 @@ The worlds first private virtual filesystem. - `docs`: a [Next.js](https://nextjs.org) app ## Packages -All TypeScript packages are compiled automatically, other native binaries including Rust packages must be compiled by a host app at build time. +All TypeScript packages are compiled automatically using Turborepo. - `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 +- `native-macos`: a [Swift]() native binary +- `native-ios`: a [Swift]() native binary +- `native-windows`: a [C#]() native binary +- `native-android`: a [Kotlin]() native binary - -## Utilities -This turborepo has some additional tools already setup for you: - -- [TypeScript](https://www.typescriptlang.org/) for static type checking -- [ESLint](https://eslint.org/) for code linting -- [Jest](https://jestjs.io) test runner for all things JavaScript -- [Prettier](https://prettier.io) for code formatting - -## Remote Caching - -Turborepo can use a technique known as [Remote Caching (Beta)](https://turborepo.org/docs/features/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines. - -By default, Turborepo will cache locally. To enable Remote Caching (Beta) you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup), then enter the following commands: - -``` -cd my-turborepo -npx turbo login -``` - -This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview). - -Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your turborepo: - -``` -npx turbo link -``` - -## Useful Links - -Learn more about the power of Turborepo: - -- [Pipelines](https://turborepo.org/docs/features/pipelines) -- [Caching](https://turborepo.org/docs/features/caching) -- [Remote Caching (Beta)](https://turborepo.org/docs/features/remote-caching) -- [Scoped Tasks](https://turborepo.org/docs/features/scopes) -- [Configuration Options](https://turborepo.org/docs/reference/configuration) -- [CLI Usage](https://turborepo.org/docs/reference/command-line-reference) +## \ No newline at end of file diff --git a/packages/core/bindings/ClientEvent.ts b/packages/core/bindings/ClientEvent.ts new file mode 100644 index 000000000..d1ce73c00 --- /dev/null +++ b/packages/core/bindings/ClientEvent.ts @@ -0,0 +1,2 @@ + +export type ClientEvent = { type: "NewFileTypeThumb", data: { file_id: number, icon_created: boolean, } }; \ No newline at end of file