4 个版本
0.1.0 | 2022 年 4 月 26 日 |
---|---|
0.0.3 | 2022 年 4 月 17 日 |
0.0.2 | 2022 年 4 月 8 日 |
0.0.1 | 2022 年 4 月 8 日 |
#58 in #control-flow
27 每月下载次数
用于 conflagrate
59KB
1K SLoC
🔥 Conflagrate
从控制流图构建应用程序,而不是相反。
- 使用 Graphviz 图形定义你的应用程序流程
- 编写每个节点的代码作为函数
- 运行
Conflagrate 是一个用于构建最终以控制流图结构化的应用程序的框架。
将应用程序的各个部分构建为独立的节点。随着需求的发展和变化,安排和重新安排控制流逻辑,无需回过头来重写连接组件的粘合代码。
🔨 构建 图
使用图定义你的应用程序控制流。
conflagrate::graph!{
digraph MessageHandlerGraph {
listen[label="Listen on a Socket for a Message", type=Listen, start=true];
handle_message[label="Handle the Message", type=HandleMessage];
listen -> handle_message; // Handle the message
listen -> listen; // Listen for the next message
}
}
💻 实现 节点
为应用程序中的每种类型的节点编写一个函数。
use conflagrate::nodetype;
#[nodetype]
async fn Listen(interface: &SocketInterface) -> String {
interface.receive().await
}
#[nodetype]
async fn HandleMessage(message: String, logger: &Logger) {
logger.log(message);
}
🚀 运行
运行应用程序。
fn main() {
MessageHandlerGraph::run(());
}
依赖项
~5–14MB
~187K SLoC