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日 |
#1061 in 开发工具
16KB
203 行
🔥 Conflagrate
从控制流图构建应用程序,而不是相反。
- 使用 Graphviz 图形定义您的应用程序流程
- 编写每个节点的代码作为函数
- 运行
Conflagrate 是一个框架,用于构建最终以控制流图结构化的应用程序。
将应用程序的各个部分作为独立的节点构建。随着您的需求成熟和变化,您可以根据需要安排和重新排列控制流逻辑,而无需重新编写连接组件的粘合代码。
🔨 构建 Graph
使用图形定义您的应用程序控制流。
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
}
}
💻 实现 Nodes
为您的应用程序中的每种节点类型编写一个函数。
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(());
}
依赖项
~6–17MB
~219K SLoC