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.0.0 |
|
#1604 在 网络编程
每月下载量 158
在 aldrin-test 中使用
695KB
18K SLoC
Aldrin
Aldrin是一个面向服务的RPC和通用进程间通信的消息总线。
Aldrin总线呈星形:有一个称为代理的中心组件,多个客户端可以连接到此。然后这些客户端可以为其他客户端发布服务。
服务在称为Aldrin模式的简小领域特定语言中进行描述,由函数和事件组成。然后由代码生成器处理模式,该生成器可以输出客户端和服务器端代码。
以下是一个简单的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
:包含编译时代码生成的宏。
依赖关系
~1.2–3.5MB
~64K SLoC