2 个版本
0.2.1 | 2023年6月16日 |
---|---|
0.2.0 | 2023年6月16日 |
#1817 in 数据结构
25KB
393 行
你好,我是 Madeline
警告:我还处于非常早期的 alpha 版本,甚至还没有完成所有功能!请勿使用我,但您可以随时提供帮助。
我是一个 Rust 库,用于构建具有持久状态容器的状态应用程序。我的灵感来自 Ruby 的 madeleine
钩子 和,间接地,早期的 Java Prevalayer 库。
概述
使用 Madeleine,您将应用程序纯粹建模为对受保护数据结构的预定义操作。这些操作称为 命令,并且可能改变称为 系统 的受保护数据结构的状态。使用此模型,执行的所有命令都透明地序列化并添加到追加日志中,其中保留了它们的顺序。由于命令是 唯一 能够更改系统的事物,因此这构成了应用程序当前状态的完整历史。由于每个命令日志都持久化到磁盘,因此应用程序可以在退出或崩溃后重新启动,理解它可以重新播放命令日志而不会产生明显的影响。换句话说,它可以想象地继续从上次离开的地方开始。
用法
要查看其实际应用,请查看 examples
目录中的示例代码。
安装
此安装方法需要支持 cargo-add
的最新版本的 Cargo
cargo add madeleine
对于较旧的 Rust 安装,您可以使用 cargo-edit
或直接将依赖项添加到您的 Cargo.toml
中
madeleine = "0.2.0" # Or latest version
功能路线图
- 主、顶级
Madeleine
接口 - 示例代码
- 快照逻辑
- 命令日志记录
- 持久化
- 命令
- 快照
- 从
- 命令日志
- 快照
- 涉及快照后跟随命令的混合场景
- 垃圾收集
- 基准测试
- 集成测试
愿望清单
- 并发/并行支持
- 异步接口
- 后台处理
- 存储压缩
- 附加和可插拔的存储格式,可能通过 功能 实现
- JSON
- TOML
- CBOR
获取帮助
如果您有任何问题、担忧、错误报告等,请在此存储库的问题跟踪器中提交问题。
参与进来
请参阅 CONTRIBUTING.md 文件,了解如何参与其中。
许可证
Madeleine 是开源软件,根据 Apache 2.0 许可证 发布。
依赖项
~1.2–2.5MB
~49K SLoC