12 个版本

0.3.4 2021 年 8 月 29 日
0.3.3 2019 年 12 月 9 日
0.3.2 2019 年 10 月 7 日
0.3.0 2019 年 2 月 17 日
0.1.1 2017 年 8 月 1 日

#485文件系统

Download history 412/week @ 2024-03-14 306/week @ 2024-03-21 295/week @ 2024-03-28 392/week @ 2024-04-04 482/week @ 2024-04-11 408/week @ 2024-04-18 402/week @ 2024-04-25 310/week @ 2024-05-02 259/week @ 2024-05-09 531/week @ 2024-05-16 678/week @ 2024-05-23 2101/week @ 2024-05-30 11734/week @ 2024-06-06 12196/week @ 2024-06-13 14161/week @ 2024-06-20 12905/week @ 2024-06-27

52,083 每月下载量
15 个 Crates 中使用 (6 直接使用)

MIT 许可证

21KB
338

(略微)更快的 Linux 临时文件

Build status Build status

在 "最近" 的 Linux (~2014+) 中,文件系统支持一种新的无名称、可持久化的临时文件。

优秀的 tempfile Crates 支持两种类型的临时文件

  • 无名称临时文件,安全且快速,但永远不会写入真正的文件系统。
  • 命名临时文件,存在一些理论上的安全风险和性能问题,但如果你需要将数据高效地写入真正的文件系统,则必须使用。

然而,它并没有公开无名称(安全、快速)、可持久化(方便)的文件。这个 Crates 就是这样做的。

在非现代 Linux 上,这个 Crates 将回退到直接使用 tempfileNamedTemporaryFile

"最近" 的 Linux

Linux 3.11 中增加了对 O_TMPFILE 的支持:

  • Linux 3.11: ext2, ext3, ext4, UDF, Minix, shmem。
  • Linux 3.15: xfs
  • Linux 3.16: btrfs, f2fs
  • Linux 4.9: ubifs

一些发行版,包括发布日期、生命周期结束日期和内核版本

  • Ubuntu 12.04 (2012 年 4 月 - 2017 年 4 月): 3.2
  • Debian Wheezy (2013 年 5 月 - 2018 年 5 月): 3.2
  • Ubuntu 14.04.0 (2014 年 4 月 - 2019 年 4 月): 3.13
  • RHEL 7 (2014 年 6 月 - 2024 年 6 月): 3.10
  • Debian Jessie (2015 年 4 月 - 2020 年 4 月): 3.16
  • OpenSUSE Leap 42.1 (2015 年 11 月 - 2017 年 5 月): 4.1
  • Ubuntu 14.04.5 (2016 年 8 月 - 2019 年 4 月): 4.4
  • Debian Stretch (2017 年 6 月 - ): 4.9

也就是说,截至 2017 年,除了 CentOS/RHEL 以外,所有最新版本以及之前的版本看起来都非常有希望。

上游集成

一个 pull-request 中讨论了另一种实现方法,将此推入 NamedTemporaryFile。这是结果。

依赖项

~2–10MB
~113K SLoC