Rust 编程——prost-build 使用

Prost是一个用于生成Rust语言中的Protocol Buffers定义的库。而prost-build是Prost库的一个工具,用于生成Rust代码。Protocol Buffers是由Google开发的一种轻量级、高效的数据交换格式,可以用于结构化数据的序列化,特别适用于通信协议和数据存储等领域。

prost-build工具通过读取Protobuf文件(.proto文件)并根据文件中定义的消息类型、服务等生成相应的Rust代码。这些生成的Rust代码可用于在Rust项目中使用Protocol Buffers定义的数据结构和服务。

要使用prost-build,首先需要在Rust项目的Cargo.toml文件中添加相应的依赖:

toml 复制代码
[dependencies]
bytes = "0.4"
prost = "0.5"

[build-dependencies]
prost-build = "0.5"

然后,创建一个build.rs文件,用于配置和运行prost-build工具:
build.rs文件与Cargo.toml同级

rust 复制代码
extern crate prost_build;

fn main() {
    // prost_build::compile_protos(&["src/items.proto"], &["src/"]).unwrap();
    prost_build::Config::new()
        .out_dir("src/pb")
        .compile_protos(&["src/abi.proto"], &["src/"])
        .unwrap();
}

在src下创建pb文件夹,用于输出结果。

创建abi.proto文件:

rust 复制代码
syntax = "proto3";

package snazzy.items;

// A snazzy new shirt!
message Shirt {
    enum Size {
        SMALL = 0;
        MEDIUM = 1;
        LARGE = 2;
    }

    string color = 1;
    Size size = 2;
}

其中,src/abi.proto是你的Protobuf文件的路径,src/pb是生成的Rust代码的输出目录。

运行cargo build时,prost-build工具会自动读取Protobuf文件并生成相应的Rust代码,并将生成的代码放置在指定的输出目录中。

注意坑点

1.build.rs文件是否与Cargo.toml同级

2.是否在项目跟目录下运行cargo build

3.是否安装protoc并配置环境变量。

相关推荐
OctShop大型商城源码5 小时前
.NET线上商城源码_C#商城源码_技术赋能下的电商新生态
开发语言·c#·.net·商城系统源码
用户8356290780515 小时前
Python 操作 PowerPoint 表格的创建与格式化
后端·python
IT猿手5 小时前
光伏模型参数估计:基于山羊优化算法(GOA )的光伏模型参数辨识问题求解研究,免费提供完整MATLAB代码链接
开发语言·算法·matlab·群智能优化算法·智能优化算法·光伏模型参数估计·光伏模型参数辨识
xrgs_shz5 小时前
【高光谱数据处理实战】基于Python的ENVI图像交互式裁剪与光谱数据预处理
开发语言·图像处理·python
forestqq5 小时前
基于openeuler2403sp3的容器,打包django运行环境镜像
后端·python·django
站着6 小时前
TRAE SOLO 移动端正式上线:手机也是随身工位,随时随地进入「Vibe Working」
后端
MATLAB代码顾问6 小时前
麻雀搜索算法(SSA)原理详解与Python实现
开发语言·python
sparEE6 小时前
c++字符串和自定义字面量
开发语言·c++
盖世英雄酱581366 小时前
6000条数据执行时间9s??
数据库·后端
用户8356290780516 小时前
使用 Python 处理 Word 文档书签
后端·python