This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Dapr Rust SDK

用于开发 Dapr 应用程序的 Rust SDK 软件包

一个帮助使用 Rust 构建 Dapr 应用程序的客户端库。该客户端旨在支持所有公共 Dapr API,同时专注于惯用的 Rust 体验和开发者生产力。

Client

使用 Rust 客户端 SDK 调用公共 Dapr API

了解更多关于 Rust 客户端 SDK

1 - 开始使用 Dapr 客户端 Rust SDK

如何开始使用 Dapr Rust SDK

Dapr 客户端包允许您从 Rust 应用程序与其他 Dapr 应用程序进行交互。

前置条件

导入客户端包

将 Dapr 添加到您的 cargo.toml

[dependencies]
dapr = "0.16"

您可以直接引用 dapr::Client 或将完整路径绑定到新名称,如下所示:

use dapr::Client as DaprClient;

实例化 Dapr 客户端

let addr = "https://127.0.0.1".to_string();

let mut client = dapr::Client::<dapr::client::TonicClient>::connect(addr,
port).await?;

或者,如果您想指定自定义端口,可以使用此 connect 方法:

let mut client = dapr::Client::<dapr::client::TonicClient>::connect_with_port(addr, "3500".to_string()).await?;

构建块

Rust SDK 允许您与 Dapr 构建块 进行交互。

服务调用 (gRPC)

要在运行 Dapr 边车的另一个服务上调用特定方法,Dapr 客户端提供两个选项:

调用 (gRPC) 服务

let response = client
    .invoke_service("service-to-invoke", "method-to-invoke", Some(data))
    .await
    .unwrap();

有关服务调用的完整指南,请访问如何操作:调用服务

状态管理

Dapr 客户端提供对这些状态管理方法的访问:save_stateget_statedelete_state,可以像这样使用:

let store_name = String::from("statestore");

let key = String::from("hello");
let val = String::from("world").into_bytes();

// save key-value pair in the state store
client
    .save_state(store_name, key, val, None, None, None)
    .await?;

let get_response = client
    .get_state("statestore", "hello", None)
    .await?;

// delete a value from the state store
client
    .delete_state("statestore", "hello", None)
    .await?;

可以使用 save_bulk_states 方法发送多个状态。

有关状态管理的完整指南,请访问如何操作:保存和获取状态

发布消息

要将数据发布到主题,Dapr 客户端提供了一个简单的方法:

let pubsub_name = "pubsub-name".to_string();
let pubsub_topic = "topic-name".to_string();
let pubsub_content_type = "text/plain".to_string();

let data = "content".to_string().into_bytes();
client
    .publish_event(pubsub_name, pubsub_topic, pubsub_content_type, data, None)
    .await?;

有关发布订阅的完整指南,请访问如何操作:发布和订阅

相关链接

Rust SDK 示例