【Rust日报】2026-08-20 Celeriant:用 Rust 构建的分布式事件存储数据库
内容提要
本文介绍了四个Rust相关项目:Celeriant分布式事件存储数据库,用Rust实现每秒百万次写入;Termixel终端像素画渲染器;cs2excel CS2库存估值工具;以及Rust RFC #3943关于复用移动后变量存储空间的提案。
延伸解读
Celeriant 迁移 Rust 的动机
Celeriant 作者在 r/rust 社区分享了从 C# 后端迁移到 Rust 的过程,这暗示 Rust 在性能或并发方面可能带来优势。项目在 AWS i4i.metal 上达到每秒 100 万次持久化、复制写入,但具体硬件配置和测试条件未详述,读者应谨慎看待该数字,实际性能可能因环境而异。
Termixel 的轻量化设计
Termixel 通过选择 PNG 解析方案来控制依赖数量和二进制大小(约 200 KB),这体现了 Rust 在系统工具中追求轻量化的趋势。对于终端用户,这意味着更快的下载和启动速度,但功能可能相对有限。
cs2excel 的数据来源与限制
cs2excel 依赖 Steam 库存接口和第三方市场价格,不连接运行中的 CS2 客户端,因此无法实时反映游戏内变动。首次使用需手动添加物品,之后可更新价格,但价格来源的可靠性和更新频率未说明,用户应留意估值可能滞后。
RFC #3943 的潜在影响
该 RFC 旨在复用移动后变量的存储空间,可能减少栈占用并缩短栈分配生命周期,但涉及原始指针和别名规则,实现复杂。自 2019 年持续讨论,说明该优化在 Rust 中具有挑战性,未来若落地,可能影响编译器优化和代码布局,但普通开发者无需立即关注。
Q&A
Celeriant 是什么?它有什么性能特点?
Celeriant 是一个用 Rust 编写的开源分布式事件存储数据库。作者称其在 AWS i4i.metal 上实现了每秒 100 万次持久化、复制写入。项目约 15 万行 Rust 代码,采用按核心分片的写前日志和内存写缓存,冷数据使用 Bloom filter 辅助聚合存在性和客户端幂等检查。
Celeriant 的存储架构是怎样的?
Celeriant 采用按核心分片的写前日志和内存写缓存,冷数据使用每个日志段轮转时持久化的 Bloom filter 辅助聚合存在性和客户端幂等检查。正常集群路径使用 EBS 或本地 NVMe,支持 C# 与 Rust 客户端。
Termixel 是什么?它有什么特点?
Termixel 是一个用 Rust 编写的终端像素画渲染器,可以直接把 PNG 像素图转换为 Unicode 字符并显示在终端中。项目尽量减少依赖,当前二进制文件约 200 KB,支持 Linux 和 Windows,也可以从源码构建。
cs2excel 工具的功能是什么?它如何获取数据?
cs2excel 是一个用 Rust 编写的 Counter-Strike 2 库存估值工具,可以从 Steam 库存接口读取物品,并结合多个第三方市场价格生成或更新 Excel 表格。它提供基于 Iced 的 GUI 和 TUI 版本,支持 buff、悠悠有品、CSFloat 等市场数据。工具不连接运行中的 CS2 客户端,而是读取 Steam 的库存接口;首次使用需要把库存物品加入表格,之后可以重新运行程序更新价格。
Rust RFC #3943 是关于什么的?它有什么潜在收益?
Rust RFC #3943 讨论在局部变量发生 move 后复用其原有存储空间,以便编译器在变量重新初始化时拥有更多栈空间布局选择。潜在收益包括更早复用栈空间、减少部分函数的栈占用,以及缩短栈分配的生命周期。讨论还涉及原始指针、地址可观察性和别名规则。
Rust RFC #3943 的讨论涉及哪些技术细节?
讨论涉及原始指针、地址可观察性和别名规则。相关议题自 2019 年起持续维护,当前 RFC 页面包含实现 PR 和性能测试结果。