10个版本(2个稳定版)

1.0.1 2020年4月14日
1.0.0 2020年3月31日
1.0.0-rc.12020年2月7日
0.13.0-rc.22019年12月4日
0.10.0 2018年12月14日

#6 in #exonum

Download history 168/week @ 2024-03-29 95/week @ 2024-04-05 89/week @ 2024-04-12 101/week @ 2024-04-19 90/week @ 2024-04-26 87/week @ 2024-05-03 82/week @ 2024-05-10 83/week @ 2024-05-17 54/week @ 2024-05-24 76/week @ 2024-05-31 49/week @ 2024-06-07 62/week @ 2024-06-14 77/week @ 2024-06-21 32/week @ 2024-06-28 32/week @ 2024-07-05 48/week @ 2024-07-12

200次每月下载
21个crate中使用(12个直接使用)

Apache-2.0

20KB
266

Exonum构建脚本工具

Travis Build Status License: Apache-2.0 rust 1.42.0+ required

此crate简化了为Exonum和Exonum服务编写构建脚本的过程。

由于Protobuf是Exonum的默认序列化格式,构建脚本主要用于编译Protobuf文件并生成相应的代码。生成的代码随后由Exonum核心和服务使用。

提供了几个预定义的protobuf源集可供使用。目前提供的集合

  • 加密源:服务和使用系统proto文件所需的全部必要加密类型。这些类型包括HashPublicKeySignature
  • Exonum源:核心和系统服务(如管理器)中使用的类型。
  • 通用源:可由Exonum的各个部分使用的类型。
  • MerkleDB源:表示数据库中元素存在性的类型。

有关更多详细信息,请参阅crate文档

示例

使用exonum-build的示例build.rs

use exonum_build::ProtobufGenerator;

fn main() {
    ProtobufGenerator::with_mod_name("protobuf_mod.rs")
        .with_input_dir("src/proto")
        .with_crypto()
        .generate();
}

用法

exonum-build作为依赖项包含在您的Cargo.toml

[build-dependencies]
exonum-build = "1.0.0"

已知问题

该crate使用的代码生成器不支持层次结构,而是使用生成的Rust模块的扁平结构。这意味着如果生成器输入(包括包含的文件!)包含多个具有相同基本名称的Protobuf文件(例如,foo/bar.protoother/bar.proto),则可能会发生编译错误。

许可证

exonum-build采用Apache许可证(版本2.0)。有关详细信息,请参阅LICENSE

依赖项

~5–13MB
~184K SLoC