《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的 Spacedrive 是一个开源的跨平台文件管理器,由用 Rust 编写的虚拟分布式文件系统 ( VDFS ) 提供支持。

Spacedrive:一个开源的跨平台文件管理器

 

在一个地方组织多个设备上的文件。从云服务到离线,Spacedrive 将您设备的存储容量和处理能力整合到一个个人分布式云中,使用起来既安全又直观。
对于独立的创意者、囤积者和那些想要拥有自己的数字足迹的人。Spacedrive 提供独一无二的文件管理体验,而且完全免费。

什么是 VDFS?

VDFS(虚拟分布式文件系统)是一种用于在各种存储层之上工作的文件系统。它不限于单台机器,具有统一的 API 来跨多个设备操作和访问内容。它通过维护所有存储位置的虚拟索引、在客户端之间实时同步数据库来实现这一点。此实现还使用CAS(内容可寻址存储)来唯一标识文件,同时记录相对于存储位置的逻辑文件路径。

Spacedrive开发路线图

完成(仍在测试):

文件发现- 扫描设备、驱动器和云帐户以构建包含元数据的所有文件的目录。

预览生成- 自动为图像和视频生成较低分辨率的替身。

进行中:

统计信息- 总容量、索引大小、预览媒体大小、可用空间等。

文件资源管理器- 浏览在线/离线存储位置,查看带有元数据的文件,执行基本的 CRUD。

实时同步- 设备之间实时同步数据索引,优先考虑点对点 LAN 连接(WiFi 同步)。

自托管- Spacedrive 可以作为服务部署,就像为您的个人云提供动力的另一台设备一样。

待开发(MVP):

照片- 类似于 le/ 照片的照片和视频专辑。

搜索- 使用键绑定深入搜索您的文件系统,包括离线位置。

标签- 在自定义标签上定义例程以自动化工作流程,轻松地单独、批量和通过规则自动标记文件。

扩展- 在 Spacedrive 之上构建工具,扩展功能并集成第三方服务。[spacedrive.app/extensions 上的扩展目录。

待开发(后MVP):

Spacedrive Cloud - 我们将为您托管一个始终在线的云设备,并提供即用即付的存储计划。

云集成- 索引和备份到 Apple Photos、Google Drive、Dropbox、OneDrive 和 Mega + 简单的 API,供社区添加更多内容。

加密库- 轻松管理和加密敏感文件,建立在 VeraCrypt 之上。加密单个文件或创建灵活大小的保管库。

密钥管理器- 查看、安装、卸载和隐藏密钥。安装的密钥会自动解锁文件系统的各个区域。

冗余目标- 确保您的重要数据存在特定数量的副本,发现有风险的文件并监控设备/驱动器的运行状况。

时间线- 查看内容的线性时间线,前往任何时间并查看以视觉方式呈现的媒体。

媒体编码器- 将视频和音频编码为各种格式,使用标签自动化。使用 FFMPEG 构建。

工作人员- 统一利用设备的计算能力以更快的速度编码和执行任务。

开发者安装说明

此环境使用Cargo和pnpm。确保在继续之前已安装它们。

GIT拉取:

$ git clone https://github.com/spacedriveapp/spacedrive
$ cd spacedrive
$ pnpm i
$ pnpm prep- 运行所有必要的代码生成并构建所需的依赖项。

prep要在您可以使用后仅快速运行桌面应用程序:

$ pnpm desktop dev

运行登录页面

$ pnpm web dev- 运行嵌入的网络应用程序
$ pnpm landing dev

如果您遇到问题,请确保您使用的是以下版本的 Rust 和 Node:

  • Rust version: 1.58.1
  • Node version: 17

单体仓库结构

应用:

  • desktop:带有嵌入式Rust 二进制文件的Tauri应用程序。sdcore
  • mobile:带有嵌入式Rust 二进制文件的React Native应用程序。sdcore
  • web:一个React webapp 作为一个轻量级的包装器,interface带有一个 websocket 传输。
  • landing: 一个使用 Vite 页面的React应用,Tailwind Typography

核:

  • core: Rust核心,内部称为sdcore. 包含文件系统、数据库和网络逻辑。可以部署在各种主机应用程序中。

套餐:

  • client:一个TypeScript客户端库,用于通过 UI 和 Rust 核心之间的 RPC 处理数据流。
  • ui:一个 React 共享组件库。
  • interface:React 中的完整用户界面(由应用程序使用desktop,web和landing)
  • config:eslint配置(包括eslint-config-next,eslint-config-prettier以及tsconfig.json整个 monorepo 中使用的所有配置。
  • os:用于 MacOS 系统扩展的Swift Native 二进制文件。
  • : 一个Swift Native 二进制文件(计划中的)。
  • : 一个C#原生二进制文件(计划中的)。
  • :一个Kotlin Native 二进制文件(计划中)。

—END—

开源协议:GPL-3.0 License

开源地址:
https://github.com/spacedriveapp/spacedrive

胜象大百科