7个版本 (破坏性更新)
0.7.0 | 2024年7月25日 |
---|---|
0.6.0 | 2024年6月7日 |
0.5.0 | 2024年5月29日 |
0.4.0 | 2024年4月2日 |
0.1.0 | 2023年11月24日 |
#15 in #message-bus
每月下载 187 次
在 3 crate 中使用
535KB
14K SLoC
Aldrin
Aldrin是一个信息总线,用于面向服务的RPC和通用进程间通信。
Aldrin总线呈星形:有一个中心组件,称为代理,多个客户端可以连接到该代理。然后这些客户端可以发布服务供其他客户端使用。
服务使用名为Aldrin模式的小型DSL进行描述,由函数和事件组成。然后由代码生成器处理这些模式,它可以生成客户端和服务器端代码。
以下是一个简单的echo服务示例
service Echo {
uuid = 8920965f-110a-42ec-915c-2a65a3c47d1f;
version = 1;
fn echo @ 1 {
args = string;
ok = string;
err = enum {
EmptyString @ 1;
}
}
fn echo_all @ 2 {
args = string;
err = enum {
EmptyString @ 1;
}
}
event echoed_to_all @ 1 = string;
}
crate组织
aldrin
: 这是主crate,旨在编写客户端和服务器应用程序。aldrin-broker
: 实现协议的代理端。aldrin-core
: 由aldrin
和aldrin-broker
使用的共享协议原语。aldrin-test
: 设置Aldrin服务单元测试的实用工具。aldrin-parser
: Aldrin模式解析库。aldrin-codegen
: 从Aldrin模式实现客户端和服务器代码生成。aldrin-gen
: 解析器和代码生成器的独立前端。aldrin-macros
: 包含编译时代码生成的宏。
依赖项
~0.7–2.4MB
~46K SLoC