5 个版本
0.2.1 | 2024 年 4 月 18 日 |
---|---|
0.2.0 |
|
0.1.5 | 2023 年 10 月 6 日 |
0.1.4 | 2023 年 4 月 16 日 |
0.1.3 | 2021 年 4 月 18 日 |
在 构建工具 中排名 42
每月下载量 21,688
用于 10 个 包(8 个直接使用)
32KB
344 行代码(不包括注释)
build-data
将构建数据包含到您的程序中。
功能
- 保存构建时数据
- Git 提交、分支和脏污度
- 源代码修改日期和时间
- Rustc 版本
- Rust 通道(稳定、夜间或测试版)
- 所有工作都在您的
build.rs
中完成。 - 设置环境变量。使用
env!
在您的程序中使用它们。 - 无宏
- 无运行时依赖
- 轻量级构建依赖
禁止(不安全代码)
- 100% 测试覆盖率
替代方案
- 为包设置的 cargo 环境变量
CARGO_PKG_NAME
CARGO_PKG_VERSION
CARGO_BIN_NAME
- 其他
vergen
- 成熟且非常受欢迎
- 良好的 API,只需使用
env!
即可检索值 - 出色的测试覆盖率
- 重型构建依赖
build-info
- 成熟
- 混乱的 API
- 使用过程宏
示例
// Cargo.toml
[dependencies]
[build-dependencies]
build-data = "0"
在您的 Cargo.toml
旁边添加一个 build.rs
文件。调用 build_data::set_*
函数来设置变量。
// build.rs
fn main() {
build_data::set_GIT_BRANCH();
build_data::set_GIT_COMMIT();
build_data::set_GIT_DIRTY();
build_data::set_SOURCE_TIMESTAMP();
build_data::no_debug_rebuilds();
}
使用 env!
在您的程序中访问变量
// src/bin/main.rs
fn main() {
// Built from branch=release
// commit=a5547bfb1edb9712588f0f85d3e2c8ba618ac51f
// dirty=false
// source_timestamp=2021-04-14T06:25:59+00:00
println!("Built from branch={} commit={} dirty={} source_timestamp={}",
env!("GIT_BRANCH"),
env!("GIT_COMMIT"),
env!("GIT_DIRTY"),
env!("SOURCE_TIMESTAMP"),
);
}
Cargo Geiger 安全报告
Metric output format: x/y
x = unsafe code used by the build
y = total unsafe code found in the crate
Symbols:
🔒 = No `unsafe` usage found, declares #![forbid(unsafe_code)]
❓ = No `unsafe` usage found, missing #![forbid(unsafe_code)]
☢️ = `unsafe` usage found
Functions Expressions Impls Traits Methods Dependency
0/0 0/0 0/0 0/0 0/0 🔒 build-data 0.2.1
0/0 1/11 1/1 0/0 0/0 ☢️ ├── chrono 0.4.38
0/0 0/0 0/0 0/0 0/0 ❓ │ └── num-traits 0.2.18
0/0 0/0 0/0 0/0 0/0 🔒 └── safe-regex 0.3.0
0/0 0/0 0/0 0/0 0/0 🔒 └── safe-regex-macro 0.3.0
0/0 0/0 0/0 0/0 0/0 🔒 ├── safe-proc-macro2 1.0.67
0/0 4/4 0/0 0/0 0/0 ☢️ │ └── unicode-ident 1.0.12
0/0 0/0 0/0 0/0 0/0 🔒 └── safe-regex-compiler 0.3.0
0/0 0/0 0/0 0/0 0/0 🔒 ├── safe-proc-macro2 1.0.67
0/0 0/0 0/0 0/0 0/0 🔒 └── safe-quote 1.0.15
0/0 0/0 0/0 0/0 0/0 🔒 └── safe-proc-macro2 1.0.67
0/0 5/15 1/1 0/0 0/0
变更日志
- v0.2.1
- 添加
set_TARGET_PLATFORM
。感谢 tison! - 在辅助函数中使用 u64 作为时间戳。
- 添加
- v0.1.5 - 更新依赖项。感谢 dignifiedquire!
- v0.1.4 - 更新依赖项。
- v0.1.3 - 更新文档。
- v0.1.2 - 根据 r/rust 的反馈进行重写。
- v0.1.1 - 更新文档。
- v0.1.0 - 初始版本
待办事项
许可协议:Apache-2.0
依赖项
~1.5MB
~25K SLoC