10 releases

0.1.9 Oct 3, 2024
0.1.8 Dec 22, 2023
0.1.7 Mar 23, 2022
0.1.6 Apr 28, 2021
0.1.5 Mar 23, 2021

#137 in Filesystem

Download history 3377/week @ 2024-07-25 3589/week @ 2024-08-01 2061/week @ 2024-08-08 2111/week @ 2024-08-15 1993/week @ 2024-08-22 1893/week @ 2024-08-29 2201/week @ 2024-09-05 2447/week @ 2024-09-12 3036/week @ 2024-09-19 2589/week @ 2024-09-26 2675/week @ 2024-10-03 2501/week @ 2024-10-10 1928/week @ 2024-10-17 2909/week @ 2024-10-24 3893/week @ 2024-10-31 2711/week @ 2024-11-07

11,892 downloads per month
Used in 18 crates (17 directly)

Apache-2.0

17KB
169 lines

temp-file

crates.io version license: Apache 2.0 unsafe forbidden pipeline status

Provides a TempFile struct.

Features

  • Makes a file in a system temporary directory
  • Deletes the file on drop
  • Optional name prefix, name suffix, contents, and directory.
  • Depends only on std
  • forbid(unsafe_code)
  • 100% test coverage

Limitations

Alternatives

  • tempfile
    • Popular and mature
    • Supports some security-sensitive use cases
    • Contains unsafe, dependencies full of unsafe
    • Heavy dependencies (libc, winapi, rand, etc.)
  • test-temp-file
    • Depends on crates which contain unsafe
    • Incomplete documentation
  • temp_file_name
    • Does not delete file
    • Usage is not straightforward. Missing example.
  • mktemp
    • Sets file mode 0600 on unix
    • Contains unsafe
    • No readme or online docs

Related Crates

Example

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 Safety Report


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.9

0/0        0/0          0/0    0/0     0/0    

Changelog

  • v0.1.9 - AsRef<Path>
  • v0.1.8 - Work when the file already exists.
  • v0.1.7 - Add in_dir, with_suffix, and TempFileBuilder.
  • v0.1.6
    • Return std::io::Error instead of String.
    • Add cleanup.
  • v0.1.5 - Increase test coverage
  • v0.1.4 - Add leak and panic_on_cleanup_error.
  • v0.1.3 - Update docs
  • v0.1.2 - Update example
  • v0.1.1 - Minor code cleanup, update docs
  • v0.1.0 - Initial version

License: Apache-2.0

No runtime deps