#interprocess-communication #rpc #message-bus #rpc-service #rpc-client #service #ipc

aldrin-broker

Aldrin的Broker库,一个面向服务的RPC和进程间通信的消息总线

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

#1604网络编程

Download history 5/week @ 2024-05-17 160/week @ 2024-05-24 33/week @ 2024-05-31 151/week @ 2024-06-07 11/week @ 2024-06-14 93/week @ 2024-07-19 61/week @ 2024-07-26 4/week @ 2024-08-02

每月下载量 158
aldrin-test 中使用

MIT/Apache

695KB
18K SLoC

Aldrin

Crates.io Crates.io Build status

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

依赖关系

~1.2–3.5MB
~64K SLoC