12 releases

0.1.11 Apr 28, 2021
0.1.10 Mar 23, 2021

#77 in Testing

Download history 28/week @ 2021-06-30 73/week @ 2021-07-07 202/week @ 2021-07-14 401/week @ 2021-07-21 551/week @ 2021-07-28 1120/week @ 2021-08-04 946/week @ 2021-08-11 873/week @ 2021-08-18 986/week @ 2021-08-25 1206/week @ 2021-09-01 1672/week @ 2021-09-08 1502/week @ 2021-09-15 2351/week @ 2021-09-22 1969/week @ 2021-09-29 1828/week @ 2021-10-06 1994/week @ 2021-10-13

226 downloads per month
Used in 8 crates (6 directly)

Apache-2.0

23KB
313 lines

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

temp-dir

Provides a TempDir struct.

Features

  • Makes a directory in a system temporary directory
  • Recursively deletes the directory and its contents on drop
  • Deletes symbolic links and does not follow them.
  • Optional name prefix
  • Depends only on std
  • forbid(unsafe_code)
  • 100% test coverage

Limitations

Alternatives

  • tempfile
    • Popular and mature
    • Contains unsafe, dependencies full of unsafe
    • Heavy dependencies (libc, winapi, rand, etc.)
  • test_dir
    • Has a handy TestDir struct
    • Incomplete documentation
  • temp_testdir
    • Incomplete documentation
  • mktemp
    • Sets directory mode 0700 on unix
    • Contains unsafe
    • No readme or online docs

Related Crates

Example

use temp_dir::TempDir;
let d = TempDir::new().unwrap();
// Prints "/tmp/t1a9b-0".
println!("{:?}", d.path());
let f = d.child("file1");
// Prints "/tmp/t1a9b-0/file1".
println!("{:?}", f);
std::fs::write(&f, b"abc").unwrap();
assert_eq!(
    "abc",
    std::fs::read_to_string(&f).unwrap(),
);
// Prints "/tmp/t1a9b-1".
println!(
    "{:?}", TempDir::new().unwrap().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-dir 0.1.11

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

Changelog

  • v0.1.11
    • Return std::io::Error instead of String.
    • Add cleanup.
  • v0.1.10 - Implement Eq, Ord, Hash
  • v0.1.9 - Increase test coverage
  • v0.1.8 - Add leak.
  • v0.1.7 - Update docs: Warn about std::fs::remove_dir_all being unreliable on Windows. Warn about predictable directory and file names. Thanks to Reddit user burntsushi.
  • v0.1.6 - Add TempDir::panic_on_cleanup_error. Thanks to Reddit users KhorneLordOfChaos and dpc_pw for their comments.
  • v0.1.5 - Explain how it handles symbolic links. Thanks to Reddit user Mai4eeze for this idea.
  • v0.1.4 - Update docs
  • v0.1.3 - Minor code cleanup, update docs
  • v0.1.2 - Update docs
  • v0.1.1 - Fix license
  • v0.1.0 - Initial version

Happy Contributors 🙂

Fixing bugs and adding features is easy and fast. Send us a pull request and we intend to:

  • Always respond within 24 hours
  • Provide clear & concrete feedback
  • Immediately make a new release for your accepted change

License: Apache-2.0

No runtime deps