8 个版本 (破坏性更新)
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 |
|
#732 in 网络编程
每月176次下载
在 aldrin-test 中使用
1MB
20K SLoC
阿德里安
阿德里安是面向服务的 RPC 和通用进程间通信的消息总线。
阿德里安总线是星形结构:有一个中央组件,称为代理,多个客户端可以连接到它。然后这些客户端可以发布服务供其他客户端使用。
服务由一个名为阿德里安模式的简短 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;
}
组件组织
aldrin
:这是主组件,旨在编写客户端和服务器应用程序。aldrin-broker
:实现协议的代理端。aldrin-core
:由aldrin
和aldrin-broker
共享的协议原语。aldrin-test
:用于设置 Aldrin 服务单元测试的实用工具。aldrin-parser
:阿德里安模式的解析库。aldrin-codegen
:从阿德里安模式实现客户端和服务器代码生成。aldrin-gen
:解析器和代码生成器的独立前端。aldrin-macros
:包含在编译时进行代码生成的宏。
依赖项
~1–10MB
~103K SLoC