首先创建一个项目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内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!