问题标签 [tonic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
339 浏览

rust - Rust tonic 问题错误`tonic::request::Request`,它没有实现 `Copy` 特征

我正在使用tonic:2.0grpc 实现,我创建了 userdetails带有消息请求用户名和用户电子邮件的服务的原型,如下面的带有 rust 实现的原型文件所示。request: Request<userRequest>多次使用请求时遇到错误。请帮助我如何解决这个问题

proto 的 Rust tonic 实现

0 投票
1 回答
1899 浏览

rust - 在 rust 中使用 prost 和 tonic 时如何导入 .proto?

我正在尝试使用 crates prost 和 tonic 在 rust 中构建一个简单的 gRPC 客户端。我的原型定义非常简单,但我突然坚持使用从其他原型导入的消息。

build.rs的很简单:

当我将 protos 包含在中时,问题就开始了main.rs

编译失败并出现以下错误:

这里可能有什么问题?!我将我的游乐场项目上传到github,以防它可能有用。

0 投票
0 回答
149 浏览

rust - 如何跨多个微服务共享 .proto 消息?

我正在尝试创建一堆微服务。大多数 grpc 消息使用此消息

i18n 还实现了额外的方法来为请求上下文选择正确的键。这样

我想创建一个 Crate,它将存储在私有 GitHub 存储库中,带有 proto 和附加功能,以便我可以使用 cargo 在多个微服务之间共享 i18n 消息和逻辑。

我有没有机会使用extern_path来做到这一点?

如果不能,您能否分享您使用 prost 库的经验以及您是如何共享代码的?

0 投票
0 回答
157 浏览

rust - 使用 tonic::Status 和 redis::RedisError 对 Redis 和 Tonic 异步应用程序进行正确的错误处理

我正在制作一个使用 Redis 客户端的基于 Tonic 的 gRPC 微服务。我想不出在发生异步错误时将 a 隐式转换RedisError为 a的示例。tonic::Status

来自 Redis 客户端的连接可能会失败以及设置失败。我正在使用使用 Tokio 的异步接口。我宁愿不要map错误,因为这似乎破坏了异步。

我在想我需要实现这个特性From<Status>From<RedisError但不知道该怎么做。这是我的尝试,但它不起作用,因为 Tonic 想要一个tonic::Status结构而不是ApiError我制作的结构:

0 投票
0 回答
479 浏览

rust - 使用 tonic 和 rust 创建 grpc 客户端

我正在尝试编写一个客户端来与使用 Rust 用 tonic 编写的 grpc 服务器进行通信,但是我无法理解在哪里定义和连接到客户端,因此我的 import 语句出现错误。我已经学习了几个教程,但在查找有关如何创建和导入客户端的信息时遇到了麻烦。我的错误是:

在我的proto.rs文件中:

我的lib.rs文件:

main.rs

client.rs

作为参考,我正在关注:

https://tjtelan.com/blog/lets-build-a-single-binary-grpc-server-client-with-rust-in-2020/

https://blog.logrocket.com/rust-and-grpc-a-complete-guide/

https://dev.to/anshulgoyal15/a-beginners-guide-to-grpc-with-rust-3c7o

0 投票
0 回答
47 浏览

rust - 不匹配的类型:在 Tonic for Rust grpc 消息中将 sqlx 类型转换为自定义 UUID 类型

我正在为 Rust/Tonic grpc 服务编写 rpc,以通过 sqlx crate 从 postgresdb 中删除用户。我正在尝试通过存储为UUID. 我对 Uuid 的原型定义是:

我的UserRequest定义是:

我删除用户的 rpc 是:

这会导致以下错误:

我正在尝试使用此行将 UUID 类型转换为 sqlx 类型: sqlx::types::Uuid(user_id).as_u128()并且很好奇是否有人可以告诉我我做错了什么?谢谢!

0 投票
0 回答
79 浏览

rust - Rust tonic tonic::include_proto 在 tonic 构建中从一个模块到另一个模块的文件路径

我正在使用 Tonic实现 gRPC 客户端和服务器。我有两个模块,每个模块取决于另一个模块原型文件。当我尝试在 tonic 构建中提供 proto 文件的路径时,我遇到了一个问题。下面是我的 tonic 构建的文件夹结构和代码。