本期推荐的 Spacedrive 是一个开源的跨平台文件管理器,由用 Rust 编写的虚拟分布式文件系统 ( VDFS ) 提供支持。
在一个地方组织多个设备上的文件。从云服务到离线硬盘,Spacedrive 将您设备的存储容量和处理能力整合到一个个人分布式云中,使用起来既安全又直观。
对于独立的创意者、囤积者和那些想要拥有自己的数字足迹的人。Spacedrive 提供独一无二的文件管理体验,而且完全免费。
什么是 VDFS?
VDFS(虚拟分布式文件系统)是一种设计用于在各种存储层之上工作的文件系统。它不限于单台机器,具有统一的 API 来跨多个设备操作和访问内容。它通过维护所有存储位置的虚拟索引、在客户端之间实时同步数据库来实现这一点。此实现还使用CAS(内容可寻址存储)来唯一标识文件,同时记录相对于存储位置的逻辑文件路径。
Spacedrive开发路线图
完成(仍在测试):
文件发现- 扫描设备、驱动器和云帐户以构建包含元数据的所有文件的目录。
预览生成- 自动为图像和视频生成较低分辨率的替身。
进行中:
统计信息- 总容量、索引大小、预览媒体大小、可用空间等。
文件资源管理器- 浏览在线/离线存储位置,查看带有元数据的文件,执行基本的 CRUD。
实时同步- 设备之间实时同步数据索引,优先考虑点对点 LAN 连接(WiFi 同步)。
自托管- Spacedrive 可以作为服务部署,就像为您的个人云提供动力的另一台设备一样。
待开发(MVP):
照片- 类似于 Apple/Google 照片的照片和视频专辑。
搜索- 使用键绑定深入搜索您的文件系统,包括离线位置。
标签- 在自定义标签上定义例程以自动化工作流程,轻松地单独、批量和通过规则自动标记文件。
扩展- 在 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 中使用的所有配置。
- macos:用于 MacOS 系统扩展的Swift Native 二进制文件。
- ios: 一个Swift Native 二进制文件(计划中的)。
- windows: 一个C#原生二进制文件(计划中的)。
- android:一个Kotlin Native 二进制文件(计划中)。
—END—
开源协议:GPL-3.0 License