#进程间通信 #RPC #RPC 服务 #服务 #消息总线 #异步 #进程间

aldrin

面向服务的 RPC 和进程间通信的消息总线

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 2020年2月14日

#732 in 网络编程

Download history 6/week @ 2024-05-19 171/week @ 2024-05-26 149/week @ 2024-06-02 25/week @ 2024-06-09 4/week @ 2024-06-16 146/week @ 2024-07-21 25/week @ 2024-07-28 5/week @ 2024-08-11

每月176次下载
aldrin-test 中使用

MIT/Apache

1MB
20K SLoC

阿德里安

Crates.io Crates.io Build status

阿德里安是面向服务的 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:由 aldrinaldrin-broker 共享的协议原语。
  • aldrin-test:用于设置 Aldrin 服务单元测试的实用工具。
  • aldrin-parser:阿德里安模式的解析库。
  • aldrin-codegen:从阿德里安模式实现客户端和服务器代码生成。
  • aldrin-gen:解析器和代码生成器的独立前端。
  • aldrin-macros:包含在编译时进行代码生成的宏。

依赖项

~1–10MB
~103K SLoC