1 个不稳定版本
0.1.0 | 2022年1月23日 |
---|
#477 在 测试 中
17KB
285 代码行
maelstrom-rs
一个提供 Actor 模型以使用 Maelstrom 开发玩具分布式系统的包。
什么是 Maelstrom?
Maelstrom 是一个通过编写自己的系统来学习分布式系统的平台。它使用 Jepsen 测试库来测试分布式系统的玩具实现。
入门
官方文档中的示例可以在 示例文件夹 中找到。
该包公开
示例
use maelstrom_rs::actor::Actor;
use maelstrom_rs::message::{Request, Response};
use maelstrom_rs::error::Error;
use maelstrom_rs::runtime::Runtime;
fn main() {
let node = EchoActor { node_id: None };
let mut runtime = Runtime::new(Box::new(node));
// runtime.start();
}
struct EchoActor {
node_id: Option<String>,
}
impl Actor for EchoActor {
fn init(&mut self, node_id: &str, _node_ids: Vec<String>) -> Result<(), Error> {
self.node_id = Some(String::from(node_id));
eprintln!("node {} initiated", node_id);
Ok(())
}
fn receive(&mut self, message: &Request) -> Result<Vec<Response>, Error> {
match message.message_type.as_str() {
"echo" => unimplemented!(),
_ => unimplemented!(),
}
}
}
依赖项
~0.7–1.4MB
~33K SLoC