rust 中生成与使用protobuf的方法

 更新时间:2023年05月27日 09:40:34   作者:一名路过的小码农  
这篇文章主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • rust多样化错误处理(从零学习)

    rust多样化错误处理(从零学习)

    一个优秀的项目,错误处理的优雅性是至关重要的,而rust,anyhow creat是绕不过去的一个,今天我们来研究下,怎么使用它,帮助我们写出更优雅的代码,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2023-11-11
  • libbpf和Rust开发ebpf程序实战示例

    libbpf和Rust开发ebpf程序实战示例

    这篇文章主要为大家介绍了libbpf和Rust开发ebpf程序实战示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • MacBook Pro安装rust编程环境的过程

    MacBook Pro安装rust编程环境的过程

    rustup是一个用于管理Rust版本和工具链的工具,这篇文章主要介绍了MacBook Pro安装rust编程环境的过程,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • 深入了解Rust 结构体的使用

    深入了解Rust 结构体的使用

    结构体是一种自定义的数据类型,它允许我们将多个不同的类型组合成一个整体。下面我们就来学习如何定义和使用结构体,并对比元组与结构体之间的异同,需要的可以参考一下
    2022-11-11
  • Rust中的Copy和Clone对比分析

    Rust中的Copy和Clone对比分析

    这篇文章主要介绍了Rust中的Copy和Clone及区别对比分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 如何使用Rust直接编译单个的Solidity合约

    如何使用Rust直接编译单个的Solidity合约

    本文介绍了如何使用Rust语言直接编译Solidity智能合约,特别适用于没有外部依赖或flatten后的合约,一般情况下,Solidity开发者使用Hardhat或Foundry框架,本文给大家介绍如何使用Rust直接编译单个的Solidity合约,感兴趣的朋友一起看看吧
    2024-09-09
  • 详解Rust 修改源

    详解Rust 修改源

    这篇文章主要介绍了Rust 修改源的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Rust 搭建一个小程序运行环境的方法详解

    Rust 搭建一个小程序运行环境的方法详解

    rust是一门比较新的编程语言,2015年5月15日,Rust编程语言核心团队正式宣布发布Rust 1.0版本,本文给大家介绍Rust 搭建一个小程序运行环境,以iOS 为例介绍开发环境的准备,感兴趣的朋友跟随小编一起看看吧
    2022-05-05
  • Rust语言之trait中的个方法可以重写吗

    Rust语言之trait中的个方法可以重写吗

    在Rust中,trait定义了一组方法,这些方法可以被一个或多个类型实现,当你为某个类型实现一个trait时,你可以为该trait中的每个方法提供自己的具体实现,本文将给大家介绍一下trait中的个方法是否可以重写,需要的朋友可以参考下
    2023-10-10
  • 在win10上使用mingw64编译器配置Rust开发环境和idea 配置Rust 插件

    在win10上使用mingw64编译器配置Rust开发环境和idea 配置Rust 插件

    在win10上配置 Rust 开发环境(使用 mingw64编译器)和 idea 配置 Rust 插件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-03-03

最新评论