spacedrive - Spacedriveは、Rustで記述された仮想分散ファイルシステムを搭載したオープンソースのクロスプラットフォームファイルエクスプローラーです。

(Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.)

Created at: 2021-09-27 13:09:04
Language: Rust
License: GPL-3.0

ロゴ

スペースドライブ

未来からのファイルエクスプローラー。
spacedrive.com »

macOS用のダウンロード · ウィンドウズ · リナックス · iOS版 · ウォッチOS · アンドロイド
~ リンクは、リリースが利用可能になると追加されます。 ~

Spacedriveは、Rustで記述された仮想分散ファイルシステム(VDFS)を搭載したオープンソースのクロスプラットフォームファイルマネージャーです。

注:Spacedriveは活発に開発中であり、リストされている機能のほとんどはまだ実験的であり、変更される可能性があります。

多くのデバイス間でファイルを 1 か所で整理します。クラウドサービスからオフラインハードドライブまで、Spacedriveはデバイスのストレージ容量と処理能力を1つの個人用分散クラウドに組み合わせ、安全で直感的に使用できます。

独立したクリエイティブ、買いだめ者、デジタルフットプリントを所有したい人のために、Spacedriveは他に類を見ない無料のファイル管理体験を提供します。

アプリのスクリーンショット


VDFS とは何ですか?

VDFS(仮想分散ファイルシステム)は、さまざまなストレージレイヤーで動作するように設計されたファイルシステムです。VDFSは、多くのデバイス間でコンテンツを操作およびアクセスするための統一されたAPIにより、単一のマシンに制限されません。これは、すべてのストレージの場所の仮想インデックスを維持し、クライアント間でデータベースをリアルタイムで同期することで実現されます。また、この実装では、CAS(コンテンツ・アドレス可能ストレージ)を使用してファイルを一意に識別し、ストレージの場所に対する論理ファイル・パスを記録します。

VDFSの最初の実装は、Haoyuan Liによるこのカリフォルニア大学バークレー校の論文にあります。このホワイト ペーパーでは、クラウド コンピューティングでの使用について説明しますが、基本的な概念はオープン コンシューマー ソフトウェアに変換できます。

モチベーション

私たちの多くは、複数のクラウドアカウント、バックアップされていないドライブ、およびデータが失われるリスクがあります。私たちはGoogleフォトやiCloudなどのクラウドサービスに依存していますが、容量が限られており、サービスとオペレーティングシステム間の相互運用性はほとんどありません。フォトアルバムは、デバイスのエコシステムにとどまったり、広告データ用に収集されたりしないでください。それらはOSにとらわれず、永続的で、個人所有である必要があります。私たちが作成するデータは私たちの遺産であり、それは私たちよりも長く続くでしょう—オープンソーステクノロジーは、私たちの生活を定義するデータを無制限の規模で完全に制御できるようにする唯一の方法です。

ロードマップ

計画されている機能のリストについては、こちらをご覧ください spacedrive.com/roadmap

開発者ガイド

ソースからSpacedriveをインストールする方法については、寄稿ガイドを参照してください。

建築

このプロジェクトは、私が「PRRTT」スタックと呼んでいるもの(Prisma、Rust、React、TypeScript、Tauri)を使用しています。

  • フロントエンドのプリズマ?🤯ブレンドノビッチによって開発されたプリズマクライアントラストのおかげで可能になりました。開発中の強力な移行CLIと、スキーマのPrisma構文にアクセスできます。このアプリケーションは、美しいRust API用のPrismaクエリエンジンとコードジェンにバンドルされています。軽量移行ランナーは、デスクトップ アプリのコンテキストに合わせてカスタム構築されています。
  • Tauriを使用すると、平均的なElectronアプリのオーバーヘッドなしに、純粋なRustネイティブOSウェブビューを作成できます。これにより、バンドルサイズと平均メモリ使用量が大幅に削減されます。また、特にmacOSでは、SafariがOSと緊密に統合されているため、よりネイティブな感触に貢献します。
  • また、rspcを使用しているため、Rustで関数を定義し、Typescriptフロントエンドで完全にタイプセーフな方法で呼び出すことができるため、不要なバグが本番環境になることはありません。
  • コア()は純粋なRustで書かれています。
    sdcore

モノレポ構造:

アプリ:

コア:

  • core
    :内部的に呼ばれるRustコア。ファイルシステム、データベース、およびネットワークロジックが含まれています。さまざまなホスト アプリケーションに展開できます。
    sdcore

パッケージ:

  • client
    : UI と Rust コア間の RPC 経由のデータフローを処理するための TypeScriptクライアント ライブラリ。
  • ui
    :React共有コンポーネントライブラリ。
  • interface
    : Reactの完全なユーザーインターフェイス(アプリで使用、および
    desktop
    web
    landing
    )
  • config
    :構成(モノリポジトリ全体で使用されるすべての構成を含みます。
    eslint
    eslint-config-next
    eslint-config-prettier
    tsconfig.json
  • macos
    : MacOS システム拡張機能用のSwiftネイティブバイナリ。
  • ios
    :スウィフトネイティブバイナリ(予定)。
  • windows
    :C#ネイティブバイナリ(予定)。
  • android
    :Kotlinネイティブバイナリ(予定)。