rust?中生成與使用protobuf的方法
首先創(chuàng)建一個(gè)項(xiàng)目proto

進(jìn)入到這個(gè)文件夾中 創(chuàng)建我們的proto文件
初始化的項(xiàng)目結(jié)構(gòu)是這個(gè)樣子的

新建一個(gè)hello.proto文件內(nèi)容如下
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"創(chuàng)建一個(gè)build.rs 編寫代碼如下:
fn main() {
prost_build::Config::new()
.out_dir("src/pb")//設(shè)置proto輸出目錄
.compile_protos(&["hello.proto"], &["."])//我們要處理的proto文件
.unwrap();
}由于我們的項(xiàng)目中沒有pb的這個(gè)目錄 需要手動(dòng)創(chuàng)建一下,我們的整體結(jié)構(gòu)如下

然后運(yùn)行cargo build 結(jié)果如下

查看在我們剛剛創(chuàng)建的pb文件夾下是否有一個(gè)hello.rs文件

在pb目錄創(chuàng)建mod.rs文件 內(nèi)容如下
pub mod hello;
修改main.rs文件 內(nèi)容如下:
use pb::hello;
mod pb;
fn main() {
let request = hello::HelloRequest {
name: "world".to_string(),
};
println!("request: {:?}", request);
}執(zhí)行cargo run

到此這篇關(guān)于rust 中protobuf生成與使用的文章就介紹到這了,更多相關(guān)rust 使用protobuf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
rust多樣化錯(cuò)誤處理(從零學(xué)習(xí))
一個(gè)優(yōu)秀的項(xiàng)目,錯(cuò)誤處理的優(yōu)雅性是至關(guān)重要的,而rust,anyhow creat是繞不過(guò)去的一個(gè),今天我們來(lái)研究下,怎么使用它,幫助我們寫出更優(yōu)雅的代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-11-11
libbpf和Rust開發(fā)ebpf程序?qū)崙?zhàn)示例
這篇文章主要為大家介紹了libbpf和Rust開發(fā)ebpf程序?qū)崙?zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
MacBook Pro安裝rust編程環(huán)境的過(guò)程
rustup是一個(gè)用于管理Rust版本和工具鏈的工具,這篇文章主要介紹了MacBook Pro安裝rust編程環(huán)境的過(guò)程,感興趣的朋友跟隨小編一起看看吧2024-02-02
Rust?搭建一個(gè)小程序運(yùn)行環(huán)境的方法詳解
rust是一門比較新的編程語(yǔ)言,2015年5月15日,Rust編程語(yǔ)言核心團(tuán)隊(duì)正式宣布發(fā)布Rust?1.0版本,本文給大家介紹Rust?搭建一個(gè)小程序運(yùn)行環(huán)境,以iOS?為例介紹開發(fā)環(huán)境的準(zhǔn)備,感興趣的朋友跟隨小編一起看看吧2022-05-05
Rust語(yǔ)言之trait中的個(gè)方法可以重寫嗎
在Rust中,trait定義了一組方法,這些方法可以被一個(gè)或多個(gè)類型實(shí)現(xiàn),當(dāng)你為某個(gè)類型實(shí)現(xiàn)一個(gè)trait時(shí),你可以為該trait中的每個(gè)方法提供自己的具體實(shí)現(xiàn),本文將給大家介紹一下trait中的個(gè)方法是否可以重寫,需要的朋友可以參考下2023-10-10
在win10上使用mingw64編譯器配置Rust開發(fā)環(huán)境和idea 配置Rust 插件
在win10上配置 Rust 開發(fā)環(huán)境(使用 mingw64編譯器)和 idea 配置 Rust 插件的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-03-03

