9 个版本
0.1.8 | 2023 年 12 月 22 日 |
---|---|
0.1.7 | 2022 年 3 月 23 日 |
0.1.6 | 2021 年 4 月 28 日 |
0.1.5 | 2021 年 3 月 23 日 |
#122 in 文件系统
12,066 每月下载量
用于 17 个 Crates (16 直接)
17KB
164 行
temp-file
提供 TempFile
结构体。
特性
- 在系统临时目录中创建文件
- 在丢弃时删除文件
- 可选名称前缀、名称后缀、内容和目录。
- 仅依赖于
std
forbid(unsafe_code)
- 100% 测试覆盖率
限制
- 未进行安全强化。请参阅 Linux 和 Unix 的安全编程 HOWTO - 7.10. 避免竞态条件 和
mkstemp
。 - 未在 Windows 上测试。
替代方案
tempfile
- 流行且成熟
- 支持一些安全敏感用例
- 包含
unsafe
,依赖关系充满了unsafe
- 重依赖(libc、winapi、rand 等)
test-temp-file
- 依赖于包含
unsafe
的 Crates - 不完整的文档
- 依赖于包含
temp_file_name
- 不会删除文件
- 使用不直接。缺少示例。
mktemp
- 在 Unix 上设置文件模式 0600
- 包含
unsafe
- 没有说明或在线文档
相关 Crates
示例
let t = temp_file::with_contents(b"abc");
// Prints "/tmp/1a9b0".
println!("{:?}", t.path());
assert_eq!(
"abc",
std::fs::read_to_string(t.path()).unwrap(),
);
// Prints "/tmp/1a9b1".
println!("{:?}", temp_file::empty().path());
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 🔒 temp-file 0.1.8
0/0 0/0 0/0 0/0 0/0
变更日志
- v0.1.8 - 当文件已存在时工作。
- v0.1.7 - 添加
in_dir
、with_suffix
和TempFileBuilder
。 - v0.1.6
- 返回
std::io::Error
而不是String
- 添加
cleanup
。
- 返回
- v0.1.5 - 提高测试覆盖率
- v0.1.4 - 添加
leak
和panic_on_cleanup_error
。 - v0.1.3 - 更新文档
- v0.1.2 - 更新示例
- 版本 v0.1.1 - 代码小幅度清理,更新文档
- 版本 v0.1.0 - 初始版本
许可证:Apache-2.0