38.8k 星背后:Spacedrive 用内容寻址把文件管理拉回本地优先

38.8k 星背后:Spacedrive 用”内容寻址”把文件管理拉回本地优先


文件散落在笔记本电脑、外接硬盘、NAS、手机和百度网盘里——这是绝大多数人每天面对的数字生活现状。为了「让文件无处不在」,我们被迫把数据交给云服务,代价是隐私、控制权,以及每年续费的订阅费。

Spacedrive 想回答一个更根本的问题:如果计算设备天然就应该协同工作,为什么要为了「跨设备访问文件」而放弃数据主权?

这个项目目前在 GitHub 有 38,827 颗星,经历了两次重大迭代。2025 年 12 月,创始人 Jamie Pine 用六个月的业余时间,从零重写了整个项目,发布了 Spacedrive v2.0.0-alpha.1。这个故事本身就值得挖一挖。

它到底解决了什么问题

传统文件管理器(Finder、Explorer)诞生于「数据只在一台电脑上」的时代。路径是文件的唯一身份:文件在 C 盘就是 C 盘的东西,改个位置所有引用都失效。

多设备时代催生了云存储,但云存储带来了新的枷锁:文件存在别人的服务器上,依赖网络连接,隐私不可控。

Spacedrive 的核心思路是内容寻址——每个文件不再由「在哪里」定义,而是由「是什么」定义。具体来说:

  • BLAKE3 内容哈希:同一张照片在笔记本和 NAS 上产生相同的哈希值。Spacedrive 知道这是同一个文件,不管它物理上存在多少个副本。
  • 通用地址(SdPath):local://nas/photos/vacation.jpg 或 s3://my-bucket/doc.pdf——设备边界对用户透明。
  • 全局去重:自动发现跨设备的重复文件,告诉你哪些照片其实已经备份过了。

这意味着什么?当你需要找「去年秋天拍的设计素材」时,Spacedrive 可以基于内容而非文件名搜索,找到所有设备上匹配的文件,在 100ms 内完成百万级文件的检索。

技术架构:VDFS 是什么

Spacedrive 的核心是 Virtual Distributed File System(VDFS),一个用 Rust 从零实现虚拟文件系统层。

关键设计选择:

Rust 内核:v2 完全用 Rust 重写,放弃了 v1 的 Tauri + React Desktop + React Native Mobile 的混合架构。核心约 18 万行 Rust 代码,作为跨平台统一引擎。macOS 使用原生 Swift 子模块以获得最佳性能,Linux 使用 Tauri。

P2P 同步:通过 Iroh(基于 QUIC 协议)实现设备间直接通信,支持 NAT 穿透和局域网自动发现。不需要中央服务器,设备间的元数据通过混合逻辑时钟(HLC)同步,冲突通过确定性规则解决。没有单点故障,离线完全可用,重连后自动同步。

数据库:使用 SeaORM + SQLite(v1 的 Prisma 已被废弃)。

云存储集成:通过 OpenDAL 支持 40+ 种存储服务,包括 S3、Google Drive、OneDrive、Dropbox、Azure Blob。将这些云端存储作为一等公民与本地文件统一索引和搜索。

操作预览机制:所有文件操作(复制、移动、删除)执行前先预览——显示确切的空间节省、冲突情况和预估耗时,确认后才执行。操作作为持久 Job 运行,网络中断或设备重启后可恢复。

v2.0 的新东西:从 alpha 重建学到什么

v1 的 alpha 版本(2022-2024)在 GitHub 积累了 35k+ 星,但架构上存在根本性问题:Prisma 被废弃且无迁移路径、libp2p 的 P2P 传输不稳定、双文件系统(索引文件 vs 临时文件)导致不一致、缺乏可扩展性。

v2 从这些失败中学习:统一 Entry + SdPath 模型替代双文件系统、用 Iroh 替代 libp2p、用 SeaORM 重建数据库层、加入 WASM 扩展 SDK、支持 CLI 优先开发。

当前状态(v2.0.0-alpha.2,2026 年 2 月):macOS 和 Linux 完全支持,Windows 支持即将推出 alpha.2,iOS 和 Android 移动应用开发中。核心功能(多设备同步、文件索引、内容去重、云存储集成、CLI)均可工作,但仍是 alpha 阶段,可能不稳定。

Spacebot:文件管理层的 AI Agent

Spacedrive 不仅仅是一个文件管理器——它设计了一个 AI Agent 运行时集成。Spacebot 是一个独立运行的 AI Agent 运行时,Spacedrive 作为其数据、权限和执行层。

每个 Spacebot 实例与一个 Spacedrive 节点配对作为主设备,通过 P2P(Iroh/QUIC)连接,可访问用户整个设备库中的文件。Agent 发起的文件读取、Shell 命令和操作通过 Spacedrive 代理到目标设备,所有操作都经过 Spacedrive 的权限系统——哪个设备可访问、哪些路径可读写、哪些操作需要人工确认。

内置安全筛查:当启用时,每条记录在可搜索前都会经过 Prompt Guard 2 本地分类器检测提示注入。邮件、文档等外部内容获得严格筛查, flagged 记录排除在 AI 查询之外。这解决了 AI Agent 操作文件系统时的核心安全问题——不是给 Agent 原始 Shell 访问权限,而是通过结构化 API 和权限层路由它。

项目边界:适合谁,不适合谁

适合的场景:

  • 多设备用户(PC + Mac + Linux 混合环境)
  • 需要统一管理本地文件 + 云存储(S3、百度网盘等)的用户
  • 对数据主权有要求、不想全部上云但需要跨设备访问的用户
  • 隐私敏感场景(本地优先,所有处理在本地完成)
  • 有 NAS 或多硬盘,想统一索引和搜索的用户

不适合的场景:

  • 需要稳定生产级工具的用户(alpha 软件,Bug 难免)
  • Windows 用户(alpha.2 尚未发布)
  • 想要开箱即用零配置的用户(需要理解 VDFS 概念)
  • 期待替代云盘全部功能的用户(Spacedrive 是索引层,不替代存储)

使用门槛:

  • 需要理解「内容寻址 vs 路径寻址」的基本概念
  • 多设备同步需要理解 P2P 和 NAT 穿透的基本原理
  • alpha 版本要求用户有一定的技术判断力

下一步:怎么开始

  1. 下载体验:访问 spacedrive.com 下载 macOS 或 Linux 客户端。v2.alpha.2 支持这两个平台,Windows 版本即将到来。

  2. 阅读架构文档:访问 v2.spacedrive.com 了解完整架构设计、核心概念和技术细节。

  3. 尝试 CLI:Spacedrive 提供完整的 sd-cli 命令行工具,可用于库管理、位置操作和 Job 管理。对于喜欢命令行的用户,这是主要交互方式。

  4. 参与社区:GitHub Issues 和 Discord 活跃。项目目前处于资金约束下的艰难时期,但社区参与有助于推动开发进展。

  5. 关注扩展系统:v2 的 WASM 扩展 SDK 正在开发中,稳定后将支持第三方插件,包括 AI 分类、格式转换等。这是未来生态扩展的关键。


Spacedrive 不是一个普通的文件管理器。它的野心是成为「多设备计算时代的基础设施」——用 Rust + P2P + 内容寻址,重建我们与文件的关系。

38k 星说明人们对它解决的问题有强烈共鸣。但 v2 仍在 alpha 阶段,真正的考验是能否把这份野心转化为稳定可用的产品。对这个方向有需求的技术用户,值得现在就开始关注和试用。

评论区

0 条评论

登录后可评论。

拾光·开源拾遗 734 阅读