6 个版本
0.2.8 | 2021年1月5日 |
---|---|
0.2.7 | 2021年1月4日 |
0.2.6 | 2020年12月7日 |
0.2.1 | 2020年11月30日 |
0.1.0 | 2020年11月25日 |
#4 in #cerk
每月下载量 28
66KB
1K SLoC
cerk_loader_file
这是一个 CERK 的包。CERK 是一个用 Rust 编写并具有微内核架构的开源 CloudEvents 路由器。
简介
CERK 允许您在不同端口之间路由您的 CloudEvents。端口是交换 CloudEvents 的传输层绑定。它考虑到了模块化和便携性。
组件
CERK 配备了一些预制组件,但实现自定义组件也很容易。
有关详细信息,请参阅 GitHub。
此组件:基于文件的加载器
cerk_loader_file 将不同的模块连接在一起,并将其传递给 bootstrap
函数。
它使用一个 ComponentStartLinks
文件,其中包含所有启动函数的链接和配置文件。配置文件可以通过环境变量 $INIT_PATH
或直接使用路径 ./init.json
传递。
示例配置
{
"scheduler": "SCHEDULER",
"router": "ROUTER",
"config_loader": "CONFIG_LOADER",
"ports": {
"myport": "PORT"
}
}
示例 ComponentStartLinks
#[macro_use]
extern crate cerk_loader_file;
use cerk_loader_file::{start, ComponentStartLinks};
use cerk::runtime::{InternalServerId, InternalServerFn, InternalServerFnRefStatic, ScheduleFn, ScheduleFnRefStatic};
use cerk::runtime::channel::{BoxedReceiver, BoxedSender};
use cerk::kernel::{StartOptions, KernelFn};
fn dummy_scheduler(_: StartOptions, _: KernelFn) {}
fn dummy_router(_: InternalServerId, _: BoxedReceiver, _: BoxedSender) {}
fn dummy_config_loader(_: InternalServerId, _: BoxedReceiver, _: BoxedSender) {}
fn dummy_port(_: InternalServerId, _: BoxedReceiver, _: BoxedSender) {}
fn dummy_port_other(_: InternalServerId, _: BoxedReceiver, _: BoxedSender) {}
const SCHEDULER: ScheduleFnRefStatic = &(dummy_scheduler as ScheduleFn);
const ROUTER: InternalServerFnRefStatic = &(dummy_router as InternalServerFn);
const CONFIG_LOADER: InternalServerFnRefStatic = &(dummy_config_loader as InternalServerFn);
const PORT: InternalServerFnRefStatic = &(dummy_port as InternalServerFn);
fn main() {
let link = ComponentStartLinks {
schedulers: fn_to_links![SCHEDULER],
routers: fn_to_links![ROUTER],
config_loaders: fn_to_links![CONFIG_LOADER],
ports: fn_to_links![PORT],
};
start(link);
}
示例
更新 Readme
原始的 Readme 文本位于 lib.rs 文件中的 Rust 文档注释中
cargo安装 cargo-readme
cargo readme > README.md
许可证
Apache-2.0
依赖项
约 7-18MB
约 261K SLoC