BrewFS面向多智能体协作读写负载的 Rust 原生文件系统。
BrewFS 为多个 agent 提供共享的类 POSIX 工作区,针对 RandRW 密集访问模式优化,底层是一个透明的 Rust 原生存储引擎。
亮点:随机读快 37%、前台混合 I/O 快 51%、完整排空混合 I/O 快 92% — README 基准快照.
# install BrewFS in single-node mode
curl -fsSL https://raw.githubusercontent.com/brewfs/brewfs/main/scripts/install_brewfs_single_node.sh \
| sudo bash -s -- installAgent 负载不是简单的顺序读取。
Agent 会持续扫描代码仓库、读取上下文文件、写入中间产物、更新记忆、生成日志、修改工作目录,并与其他 agent 交换输出。BrewFS 正是为这种混合随机读写模式设计的。
随机读取
Agent 频繁读取源代码、配置、上下文文档、记忆快照与中间结果。
随机写入
Agent 持续写入补丁、日志、状态文件、报告、临时输出与生成的产物。
元数据密集访问
Agent 反复遍历目录、检查文件属性、判断文件是否存在并扫描项目结构。
共享工作区
多个 agent 在同一个文件系统命名空间中协作,并消费彼此的输出。
产物交换
Agent 通过普通文件路径交换代码、计划、缓存、索引、报告与执行结果。
并发更新
多个 agent 同时读写不同的文件、目录与工作流阶段。
一个工作区,服务多个 agent
BrewFS 为多个 agent 提供共享的文件系统工作区。Agent 继续使用普通文件 API,而 BrewFS 负责并发元数据更新、随机读写 IO、对象块布局与后台压缩。
- Agent 读取上下文、写入产物、更新任务状态并交接结果。
- 无需专门的 agent 存储协议 — 文件系统就是协作层。
- 便于人工审查,也便于基础设施团队将数据持久化到对象存储。
元数据后端
Redis / etcd / TiKV
命名空间 · Inode · Slice 元数据
Chunk / 对象引擎
Chunk · Block · Slice
LocalFS / S3 兼容存储
透明的存储栈,而非黑盒
为 Agent 负载优化
2026 年 7 月 24 日 Redis + RustFS 快照中,完整排空混合 I/O 比 JuiceFS 快 92%、前台混合 I/O 快 51% — 适合读取上下文、写入产物、扫描目录的 agent。
多 Agent 共享空间
多个 agent 通过同一个类 POSIX 命名空间协作,交换代码、日志、计划、缓存与索引。
Rust 原生 IO 流水线
从 FUSE 请求到 FileWriter、SliceState、ObjectBlockStore 与元数据提交 — IO 路径完全用 Rust 组织。
分层感知的数据布局
Chunk、Block、Slice 是一等公民概念,让随机 IO、对象布局、压缩与 GC 都易于推理。
面向并发 Agent 的后端
可插拔元数据后端 — SQLx、Redis、etcd、TiKV — 让团队自由权衡延迟、一致性与运维成本。
S3 兼容的产物存储
Agent 生成的产物、日志、索引与检查点落到 LocalFS 或 S3 兼容对象存储上。
透明的基准测试
RandRW、元数据密集访问、小文件负载与多智能体扩展性都是一等公民基准场景。
开发者优先的技术栈
不只是一个挂载目录 — 而是开发者可以审查、测试、修改与扩展的透明存储栈。
Redis + RustFS 基准快照
README 中的基准在同一台主机上对比 BrewFS 与 JuiceFS:Redis 元数据、RustFS S3 兼容存储、关闭压缩、匹配 writeback profile,并使用 buffered fio I/O。写入还会在测试后等待队列完整排空。
数据吞吐
| 负载 | BrewFS | JuiceFS | 倍率 |
|---|---|---|---|
| 大文件读 | 194.34 MiB/s | 194.17 MiB/s | ~1.00x |
| 顺序读 | 740.60 MiB/s | 1,000.76 MiB/s | 0.74x |
| 随机读 | 1,726.10 MiB/s | 1,256.80 MiB/s | 1.37x |
| 大文件写 | 195.05 MiB/s | 102.40 MiB/s | 1.90x |
| 顺序写 | 189.33 MiB/s | 117.94 MiB/s | 1.61x |
| 随机写 | 178.17 MiB/s | 117.43 MiB/s | 1.52x |
| 混合随机 I/O | 495.54 MiB/s | 328.76 MiB/s | 1.51x |
| 混合 I/O(完整排空) | 218.60 MiB/s | 113.86 MiB/s | 1.92x |
元数据吞吐
| 操作 | BrewFS | JuiceFS | 倍率 |
|---|---|---|---|
| Create | 1,004.61 ops/s | 549.01 ops/s | 1.83x |
| Open | 4,827.50 ops/s | 11,883.85 ops/s | 0.41x |
| Stat | 726,234.51 ops/s | 724,328.73 ops/s | ~1.00x |
| Readdir | 28,634.94 ops/s | 16,020.25 ops/s | 1.79x |
| Rename | 894.64 ops/s | 1,313.40 ops/s | 0.68x |
JuiceFS 是 production-first。
BrewFS 是 Rust-first 且 Agent-ready。
JuiceFS 是成熟的云原生文件系统产品,面向生产部署、多协议访问与商业支持。BrewFS 专注于另一个方向:Rust 原生存储引擎、透明的存储分层,以及为多智能体工作区打造的高性能 RandRW。
阅读 BrewFS vs JuiceFS →围绕 Rust 设计,而不只是用 Rust 编写
FUSE 请求处理、VFS 操作、元数据客户端、Chunk / Block / Slice 布局、对象 IO、缓冲、压缩与 GC 都围绕 Rust 的所有权模型、类型边界与异步 IO 生态来组织。
探索 Rust 引擎 →在本地运行 BrewFS
LocalFS + SQLite 是运行 BrewFS 并观察其数据布局的最简方式。之后可以切换到 S3 兼容对象存储,以及 Redis、etcd、TiKV 或 PostgreSQL 等元数据后端。
mkdir -p /tmp/brewfs-mnt /tmp/brewfs-data
cargo run -p brewfs -- mount /tmp/brewfs-mnt \
--data-backend local-fs \
--data-dir /tmp/brewfs-data \
--meta-backend sqlx \
--meta-url sqlite:///tmp/brewfs-meta.db公开路线图,基准驱动开发
BrewFS 公开说明哪些已实现、哪些正在优化、哪些仍需验证。