#workflow #callback #events #bridge #data-processing #interaction #querent

querent-rs

一个能够处理和执行querent工作流程,并能够通过回调响应传入事件的Rust桥接库

23个版本 (13个稳定版)

1.1.7 2023年12月16日
1.0.0 2023年11月29日
0.9.0 2023年11月28日

#87 in #callback

Apache-2.0LGPL-3.0-only

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