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: TypeScript
License: GPL-3.0

ロゴ

スペースドライブ

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

macOS用のダウンロード ・Windows・Linux・iOS・watchOS・ Android〜
リリースが利用可能になり次第、リンクが追加されます。〜

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

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

多くのデバイスにまたがるファイルを1か所に整理します。クラウドサービスからオフラインハードドライブまで、Spacedriveは、デバイスのストレージ容量と処理能力を1つのパーソナル分散クラウドに統合します。これは、安全で直感的に使用できます。

独立したクリエイティブ、買いだめ者、およびデジタルフットプリントを所有したい人向け。Spacedriveは、他に類を見ないファイル管理エクスペリエンスを提供し、完全に無料です。

ロゴ


VDFSとは何ですか?

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

VDFSの最初の実装は、HaoyuanLiによるこのUCバークレー校の論文に記載されています。このホワイトペーパーでは、クラウドコンピューティングでの使用について説明しますが、基本的な概念は、オープンなコンシューマーソフトウェアに変換できます。

動機

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

特徴

注:リンクは、機能固有のドキュメントが完成するまで、強調表示のみを目的としています。

完了:( テスト中)

  • ファイルの検出-デバイス、ドライブ、クラウドアカウントをスキャンして、メタデータを含むすべてのファイルのディレクトリを構築します。
  • プレビューの生成-画像とビデオの低解像度のスタンドインを自動生成します。
  • 統計-総容量、インデックスサイズ、プレビューメディアサイズ、空き容量など。

進行中:

  • ファイルエクスプローラー-オンライン/オフラインの保存場所を参照し、メタデータを含むファイルを表示し、基本的なCRUDを実行します。
  • リアルタイム同期-デバイス間でリアルタイムに同期されるデータインデックス。ピアツーピアLAN接続を優先します(WiFi同期)。

開発予定(MVP):

  • 写真-Apple/Googleの写真に似た写真とビデオのアルバム。
  • 検索-オフラインの場所を含め、キーバインドを使用してファイルシステムを詳細に検索します。
  • タグ-カスタムタグにルーチンを定義して、ワークフローを自動化し、ファイルを個別に、一括して、ルールを介して自動的にタグ付けします。
  • 拡張機能-Spacedrive上にツールを構築し、機能を拡張し、サードパーティのサービスを統合します。spacedrive.com/extensionsの拡張ディレクトリ。

開発予定(ポストMVP):

  • クラウド統合-ApplePhotos、Google Drive、Dropbox、OneDrive、Megaへのインデックス作成とバックアップ+コミュニティがさらに追加するための簡単なAPI。
  • 暗号化されたボールト-VeraCrypt上に構築された機密ファイルを簡単に管理および暗号化します。個々のファイルを暗号化するか、柔軟なサイズのボールトを作成します。
  • キーマネージャ-キーの表示、マウント、マウント解除、および非表示。マウントされたキーは、ファイルシステムのそれぞれの領域のロックを自動的に解除します。
  • 冗長性の目標-重要なデータ用に特定の量のコピーが存在することを確認し、リスクのあるファイルを検出し、デバイス/ドライブの状態を監視します。
  • タイムライン-コンテンツの線形タイムラインを表示し、いつでも移動して、視覚的に表現されたメディアを確認できます。
  • メディアエンコーダー-ビデオとオーディオをさまざまな形式にエンコードし、タグを使用して自動化します。FFMPEGで構築されています。
  • ワーカー-デバイスの計算能力を一斉に利用して、タスクをエンコードし、高速で実行します。
  • Spacedrive Cloud-常時オンのクラウドデバイスをホストし、従量課金制のストレージプランを提供します。
  • セルフホスト-Spacedriveはサービスとして展開でき、パーソナルクラウドに電力を供給する別のデバイスのように動作します。

開発者ガイド

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

建築

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

  • フロントエンドのプリズマ?🤯Brendonovichによって開発されたprisma-client-rustのおかげで可能になりました。スキーマのPrisma構文とともに、開発中の強力な移行CLIにアクセスできます。このアプリケーションには、美しいRustAPI用のPrismaクエリエンジンとcodegenがバンドルされています。軽量の移行ランナーは、デスクトップアプリのコンテキスト用にカスタムビルドされています。
  • Tauriを使用すると、平均的なElectronアプリのオーバーヘッドなしに、純粋なRustネイティブOSWebビューを作成できます。これにより、バンドルサイズと平均メモリ使用量が大幅に削減されます。また、SafariがOSと緊密に統合されているため、特にmacOSでよりネイティブな感覚に貢献します。
  • コア(
    sdcore
    )は純粋なRustで書かれています。

モノレポ構造:

アプリ:

芯:

  • 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
    Swiftネイティブバイナリ(計画中)。
  • windows
    C#ネイティブバイナリ(計画中)。
  • android
    Kotlinネイティブバイナリ(計画中)。

レポ構造:

コードベースの視覚化