#build #uuid #differs #compile-time #build-id

sys build_uuid

获取唯一表示当前二进制文件构建的UUID

1个不稳定版本

0.3.0 2022年10月24日

#2173开发工具

Download history 60/week @ 2024-03-13 81/week @ 2024-03-20 61/week @ 2024-03-27 67/week @ 2024-04-03 55/week @ 2024-04-10 45/week @ 2024-04-17 42/week @ 2024-04-24 54/week @ 2024-05-01 149/week @ 2024-05-08 73/week @ 2024-05-15 67/week @ 2024-05-22 46/week @ 2024-05-29 71/week @ 2024-06-05 51/week @ 2024-06-12 83/week @ 2024-06-19 51/week @ 2024-06-26

264 每月下载量
laze 中使用

MIT/Apache

11KB
110

build_uuid

Crates.io MIT / Apache 2.0 licensed

文档

这是一个 https://github.com/alecmocatta/build_id 的分支!

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

这旨在用于检查不同的进程确实是相同布局的二进制文件的调用。

因此

  • 它在同一二进制文件多次调用中保证是相同的。
  • 它在具有不同代码或数据段或布局的二进制文件之间保证是不同的。
  • 如果二进制文件具有相同的代码和数据段以及布局但本质上不同(例如,如果在编译时将时间戳包含在二进制文件中),则相等的定义是不明确的。

示例

let local_build_uuid = build_uuid::get();
if local_build_uuid == remote_build_uuid {
	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许可中定义的,您有意提交以包含在作品中的任何贡献,都将如上所述双许可,不附加任何额外条款或条件。

依赖关系

~540KB