#build #uuid #binary #representing #obtain #segment #uniquely

sys build_id

通过以下方式获取唯一表示当前二进制构建的UUID

8个版本

0.2.1 2019年11月24日
0.2.0 2019年10月18日
0.1.5 2019年8月1日
0.1.4 2019年7月26日
0.1.1 2018年7月26日

#1958 in 开发工具

Download history 616/week @ 2024-03-13 782/week @ 2024-03-20 449/week @ 2024-03-27 524/week @ 2024-04-03 493/week @ 2024-04-10 502/week @ 2024-04-17 1026/week @ 2024-04-24 743/week @ 2024-05-01 1150/week @ 2024-05-08 884/week @ 2024-05-15 1056/week @ 2024-05-22 1468/week @ 2024-05-29 890/week @ 2024-06-05 478/week @ 2024-06-12 603/week @ 2024-06-19 551/week @ 2024-06-26

每月下载量 3,003
11 个Crate中使用(通过 相对路径

MIT/Apache许可证

11KB
106 代码行

build_id

Crates.io MIT / Apache 2.0 licensed Build Status

文档

获取唯一表示当前二进制构建的 Uuid

此功能旨在检查不同进程是否确实是相同布局的二进制文件的调用。

因此

  • 在相同二进制文件的多次调用中,它保证是相同的。
  • 对于具有不同代码或数据段或布局的二进制文件,它保证是不同的。
  • 如果二进制文件具有相同的代码、数据段和布局,但本质上不同(例如,如果编译时在二进制文件中包含时间戳),则等价性未指定。

示例

let local_build_id = build_id::get();
if local_build_id == remote_build_id {
	println!("We're running the same binary as remote!");
} else {
	println!("We're running a different binary to remote");
}

注意

首先查找链接器插入的构建ID/二进制UUID(即在Linux上的 .note.gnu.build-id;在Mach-O中的 LC_UUID 等),然后回退到对整个二进制文件进行哈希处理。

许可证

根据您的选择,许可如下

除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据Apache-2.0许可证定义,将根据上述许可双重许可,不附加任何额外条款或条件。

依赖关系

约0.5-1.2MB
~20K SLoC