1个不稳定版本

0.1.0 2023年12月19日

#723异步

Download history 1/week @ 2024-05-04 27/week @ 2024-05-25 14/week @ 2024-06-01 4/week @ 2024-06-08 110/week @ 2024-07-06 1/week @ 2024-07-13 5/week @ 2024-07-27

每月 116 次下载

MIT 许可协议

160KB
3K SLoC

Automerge-repo-rs

项目目标:在Automerge和客户端代码之间添加一个集成层,兼容任何Rust异步运行时。

示例

多个TCP客户端,一个硬编码IP的服务器,内存存储。

  1. 启动服务器
    • cargorun --exampletcp-example --特性="tokio" ----tcp-run-ip 127.0.0.1:2345 --http-run-ip 0.0.0.0:3001
  2. 启动任意数量的客户端
    • cargorun --exampletcp-example --特性="tokio" ----other-ip 127.0.0.1:2345 --http-run-ip 0.0.0.0:3002
  3. 在服务器上创建一个新的文档
    • curl0.0.0.0:3001/new_doc
    • 文档ID以JSON格式返回。
  4. 请求文档
    • curl --json '{document-id}' 0.0.0.0:3002/request_doc(文档ID参数应类似于'"f9b1a2c6-ca05-4fc7-a02f-7e3d83f1bb49"')
  5. 在每个终端标签页中按ctr-c。
  6. 成功运行将打印出预期的同步文档。

分布式面包店算法

基于此TLA+规范分布式面包店算法的实现。

  1. 启动引导节点
    • cargorun --release --exampledistributed-bakery --特性="tokio" ----bootstrap --customer-id"1"
  2. 启动两个其他节点
    • cargorun --release --exampledistributed-bakery --特性="tokio" ----customer-id"2"
    • cargorun --release --exampledistributed-bakery --特性="tokio" ----customer-id"3"
  3. 观察节点相互请求新的增量,并进入/退出它们的临界区(打印出来)。

依赖项

~13–26MB
~518K SLoC