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习惯的开发体验和提升开发者的工作效率。

客户端

使用Rust客户端SDK调用公共的Dapr API [**了解更多关于Rust客户端SDK的信息**](https://v1-16.docs.dapr.io/zh-hans/developing-applications/sdks/rust/rust-client/)

1 - 使用 Dapr 客户端 Rust SDK 入门

如何使用 Dapr Rust SDK 快速上手

Dapr 客户端库使您能够从 Rust 应用程序与其他 Dapr 应用程序进行交互。

前提条件

引入客户端库

在您的 cargo.toml 文件中添加 Dapr

[dependencies]
# 其他依赖项
dapr = "0.13.0"

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

use dapr::Client as DaprClient

实例化 Dapr 客户端

const addr: String = "https://127.0.0.1";
const port: String = "50001";

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

功能模块

Rust SDK 允许您与 Dapr 功能模块 进行交互。

服务调用

要在运行 Dapr sidecar 的另一个服务上调用特定方法,Dapr 客户端 Go SDK 提供了以下选项:

调用服务

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

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

状态管理

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

let store_name = "store-name";
let state_key = "state-key";

let states = vec![(state_key, ("state-value").as_bytes().to_vec())];

// 使用键 "state-key" 和值 "state-value" 保存状态
client.save_state(store_name, states).await?;

// 获取键 "state-key" 的状态
let response = client.get_state(store_name, state_key, None).await.unwrap();

// 删除键 "state-key" 的状态
client.delete_state(store_name, state_key, None).await?;

注意: save_state 方法目前执行的是批量保存,但未来可能会进行重构

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

发布消息

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

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 示例