23个版本 (13个稳定版)
1.1.7 | 2023年12月16日 |
---|---|
1.0.0 | 2023年11月29日 |
0.9.0 | 2023年11月28日 |
#87 in #callback
94KB
2.5K SLoC
Querent SDK for Rust
Rust的Querent SDK简化了从Rust应用程序与高级异步数据处理引擎Querent的集成。此SDK简化了Querent工作流程的集成,为在Rust中启动、管理和交互Querent操作提供了一种简单的方法。
功能
- 轻松地从Rust应用程序开始Querent工作流程。
- 简化与Querent工作流程的交互,处理输入和输出数据。
- 直接从Rust触发Querent事件和回调。
- 简化Querent集成到基于Rust的项目中。
安装
要使用Rust的Querent SDK,请在您的Cargo.toml
中包含它
[dependencies]
querent_rs = "0.1.0"
用法
以下是从Rust应用程序启动Querent工作流程的基本示例
use querent_rs::{Querent, WorkflowBuilder, Config, PyEventCallbackInterface, py_runtime_init};
fn main() {
// Initialize the Python runtime
py_runtime_init();
// Create a Querent instance
let mut querent = Querent::new();
// Define the first workflow using the builder pattern
let workflow1 = WorkflowBuilder::new("workflow_id_1")
.name("My Workflow 1")
.import("my_module")
.attr("start_function")
.add_argument(42)
.config(Config::default())
.event_callback(PyEventCallbackInterface::new())
.build();
// Define the second workflow
let workflow2 = WorkflowBuilder::new("workflow_id_2")
.name("My Workflow 2")
.import("another_module")
.attr("start_function")
.add_argument("example_argument")
.config(Config::default())
.event_callback(PyEventCallbackInterface::new())
.build();
// Add workflows to Querent
querent.add_workflow(workflow1).expect("Failed to add workflow 1");
querent.add_workflow(workflow2).expect("Failed to add workflow 2");
// Start workflows asynchronously
querent.start_workflows().await.expect("Failed to start workflows");
}
序列图
sequenceDiagram
participant Rust
participant PythonGIL as "Python (with GIL)"
participant Python
Rust ->> PythonGIL: initialize_querent()
PythonGIL ->> Python:
Rust ->> PythonGIL: add_workflow(workflow1)
PythonGIL ->> Python:
Rust ->> PythonGIL: add_workflow(workflow2)
PythonGIL ->> Python:
Rust ->> PythonGIL: start_workflows() (async)
PythonGIL ->> Python: execute_workflow()
Python ->> PythonGIL: handle_event()
获取帮助
如果您在使用Rust的Querent SDK时遇到任何问题或有任何疑问,请随时通过我们的社区支持渠道联系我们。
许可证
Rust的Querent SDK提供Apache 2.0许可证。请参阅LICENSE文件以获取详细信息。
依赖项
~17–26MB
~383K SLoC