#interprocess-communication #message-bus #rpc-service #rpc #service #inter-process #async

aldrin-core

Aldrin的信息总线,用于面向服务的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.1.0 2023年11月24日

#15 in #message-bus

Download history 2/week @ 2024-04-28 1/week @ 2024-05-05 12/week @ 2024-05-19 177/week @ 2024-05-26 158/week @ 2024-06-02 33/week @ 2024-06-09 5/week @ 2024-06-16 4/week @ 2024-06-23 1/week @ 2024-06-30 1/week @ 2024-07-07 150/week @ 2024-07-21 30/week @ 2024-07-28 7/week @ 2024-08-11

每月下载 187
3 crate 中使用

MIT/Apache

535KB
14K SLoC

Aldrin

Crates.io Crates.io Build status

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

依赖项

~0.7–2.4MB
~46K SLoC