#cloud-events #router #cerk

cerk_router_rule_based

这是一个CERK的包。CERK是一个用Rust编写,具有微内核架构的开源CloudEvents路由器。

6个版本

0.2.11 2021年1月9日
0.2.8 2021年1月5日
0.2.6 2020年12月7日
0.2.1 2020年11月25日

#3 in #cerk

每月29次下载

Apache-2.0

61KB
998 代码行(不含注释)

cerk_router_rule_based

Build status

这是一个CERK的包。CERK是一个用Rust编写,具有微内核架构的开源CloudEvents路由器。

简介

CERK允许您在不同的端口之间路由您的CloudEvents。端口是传输层绑定,CloudEvents可以通过这些端口进行交换。它考虑了模块化和可移植性。

组件

CERK提供了一些预制组件,但实现自定义组件也很容易。

有关详细信息,请参阅GitHub

本组件:基于规则的路由器

基于规则的路由器根据给定的配置来路由事件。

配置以树形格式结构化。每个输出端口需要配置一个配置树。支持的运算符包括 AndOrContainsStartsWith 等。

配置

套接字期望一个 Config::String 作为配置。该字符串应是一个反序列化的json routing_rules::RoutingTable

配置示例

最小化

Config::String("{}".to_string())

扩展示例

use serde_json;
use cerk_router_rule_based::{CloudEventFields, RoutingRules, RoutingTable};

let routing_rules: RoutingTable = [(
  "dummy-logger-output".to_string(),
  RoutingRules::And(vec![
    RoutingRules::Exact(
        CloudEventFields::Source,
        Some("dummy.sequence-generator".to_string()),
    ),
    RoutingRules::EndsWith(CloudEventFields::Id, "0".to_string()),
  ]),
)]
.iter()
.cloned()
.collect();

let routing_configs = serde_json::to_string(&routing_rules).unwrap();

示例

更新Readme

原始readme文本是位于 lib.rs 文件中的Rust文档注释

  1. cargoinstall cargo-readme
  2. cargo readme > README.md

许可证

Apache-2.0

依赖项

~4–7MB
~149K SLoC