Rust语言

关注公众号 jb51net

关闭
首页 > 软件编程 > Rust语言 > rust 使用protobuf

rust 中生成与使用protobuf的方法

作者:一名路过的小码农

这篇文章主要介绍了rust中protobuf生成与使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

首先创建一个项目proto

进入到这个文件夹中 创建我们的proto文件

初始化的项目结构是这个样子的

新建一个hello.proto文件内容如下

syntax = "proto3";
package hello;
service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}
message HelloRequest {
  string name = 1;
}
message HelloReply {
  string message = 1;
}

 修改Cargo.toml文件 我们需要加一下 我们需要的依赖包

[package]
name = "proto"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
prost = "0.7"
prost-types = { version = "0.7", optional = true }
[build-dependencies]
prost-build = "0.7"

创建一个build.rs 编写代码如下:

fn main() {
    prost_build::Config::new()
        .out_dir("src/pb")//设置proto输出目录
        .compile_protos(&["hello.proto"], &["."])//我们要处理的proto文件
        .unwrap();
}

由于我们的项目中没有pb的这个目录 需要手动创建一下,我们的整体结构如下

然后运行cargo build 结果如下

 查看在我们刚刚创建的pb文件夹下是否有一个hello.rs文件

在pb目录创建mod.rs文件 内容如下

pub mod hello;

 修改main.rs文件 内容如下:

use pb::hello;
mod pb;
fn main() {
    let request = hello::HelloRequest {
        name: "world".to_string(),
    };
    println!("request: {:?}", request);
}

执行cargo run

到此这篇关于rust 中protobuf生成与使用的文章就介绍到这了,更多相关rust 使用protobuf内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文