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

querent-synapse

一个能够处理和执行querent工作流,并能够通过回调响应传入事件的Rust桥梁。在querent和外部世界之间充当突触。

26个稳定版本

3.0.5 2024年4月27日
3.0.3 2024年4月18日
2.0.0 2024年3月3日
1.7.0 2024年3月3日
1.2.4 2023年12月20日

#85 in #callback

Download history 439/week @ 2024-04-13 42/week @ 2024-04-20 328/week @ 2024-04-27 14/week @ 2024-05-04 8/week @ 2024-05-11 25/week @ 2024-05-18 29/week @ 2024-05-25 87/week @ 2024-06-01 43/week @ 2024-06-08 5/week @ 2024-06-15 2/week @ 2024-06-29 23/week @ 2024-07-06 223/week @ 2024-07-27

每月246次下载

Apache-2.0

115KB
3K SLoC

Querent SDK for Rust

Rust的Querent SDK简化了从Rust应用程序与高级异步数据处理引擎Querent的集成。此SDK简化了Querent工作流的集成,提供了一种直接的方法来在Rust中启动、管理和交互Querent操作。

特性

  • 轻松从Rust应用程序启动Querent工作流。
  • 简化与Querent工作流的交互,处理输入和输出数据。
  • 从Rust直接触发Querent事件和回调。
  • 简化Querent集成到基于Rust的项目中。

安装

要使用Querent SDK for Rust,将其包含在您的 Cargo.toml

[dependencies]
querent_synapse = "0.1.0"

用法

以下是从Rust应用程序启动Querent工作流的基本示例

use querent_synapse::{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文件。

依赖关系

~24–37MB
~570K SLoC