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 开发工具
每月下载量 3,003
在 11 个Crate中使用(通过 相对路径)
11KB
106 代码行
build_id
获取唯一表示当前二进制构建的 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版本 (LICENSE-APACHE.txt 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT.txt 或 http://opensource.org/licenses/MIT)
。
除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据Apache-2.0许可证定义,将根据上述许可双重许可,不附加任何额外条款或条件。
依赖关系
约0.5-1.2MB
~20K SLoC