1 分•作者: vibhanshugarg•7 个月前
Hi HN,
我一直在开发一个名为 MemCloud 的小项目——一个用 Rust 编写的分布式内存数据存储。
它允许多台局域网内的机器共享它们的 RAM,并充当一个共享的、临时的存储云。
为什么我构建它
我经常身边有多个设备(Mac + Linux 笔记本电脑 + 家庭服务器),它们大多处于空闲状态。
我希望这些机器能够像一个大型 RAM 缓存一样,用于本地开发、机器学习实验和数据处理——无需安装庞大的系统或配置集群。
所以我构建了一个轻量级的守护程序,它可以:
通过 mDNS 自动发现对等节点
公开一个简单的本地 RPC API
跨设备共享内存
支持原始块存储和 Redis 风格的键值接口
在 macOS 和 Linux 上离线工作
拥有 CLI + Rust SDK + JS/TypeScript SDK
它做什么
在任何对等节点上存储一个块,并从另一个节点加载它,在局域网内耗时 <10ms
卸载大型流(日志、数据集),而不会导致本地 RAM 激增
构建小型分布式工作流程,无需运行 Redis/Memcached 集群
以简单的方式试验 P2P 内存系统
代码仓库
[https://github.com/vibhanshu2001/memcloud](https://github.com/vibhanshu2001/memcloud)
架构(简要版)
每台设备运行一个小的 Rust 守护程序(“memnode”):
mDNS → 发现对等节点
Peer Manager → 处理连接
Block Manager → 在本地 RAM 中存储/加载块
RPC API → CLI/SDK 通信
可选 KV 存储 → set(key, value) / get(key)
SDK 仅与本地守护程序通信,后者将请求路由到正确的对等节点。
基准测试(在 M1 Mac 上)
SET:~25k ops/sec(1KB 负载)
GET:~16k ops/sec
(未优化——好奇其他人会在他们的机器上得到什么结果。)
正在寻求关于以下方面的反馈:
架构和安全性
网络设计
内存模型和驱逐策略
实际用例
我可能没有意识到的潜在陷阱
这仍处于早期阶段/alpha 版本,绝对不适合生产环境,但我很乐意听取您的想法或建议。
很乐意回答问题!
[https://memcloud.vercel.app/](https://memcloud.vercel.app/)
— Vibhanshu