#temporary-files #fs-file #producer-consumer

tempfile

A library for managing temporary files and directories

39 stable releases (3 major)

3.14.0 Nov 8, 2024
3.12.0 Aug 6, 2024
3.10.1 Feb 26, 2024
3.9.0 Dec 28, 2023
0.5.1 May 22, 2015

#1 in Filesystem

Download history 2077420/week @ 2024-08-04 2119719/week @ 2024-08-11 2144764/week @ 2024-08-18 2121628/week @ 2024-08-25 2064166/week @ 2024-09-01 2121328/week @ 2024-09-08 1982277/week @ 2024-09-15 2161515/week @ 2024-09-22 2271498/week @ 2024-09-29 2307013/week @ 2024-10-06 2289514/week @ 2024-10-13 2309475/week @ 2024-10-20 2240762/week @ 2024-10-27 2346176/week @ 2024-11-03 2375424/week @ 2024-11-10 2367742/week @ 2024-11-17

9,478,090 downloads per month
Used in 16,700 crates (5,455 directly)

MIT/Apache

98KB
1K SLoC

tempfile

Crate Build Status

A secure, cross-platform, temporary file library for Rust. In addition to creating temporary files, this library also allows users to securely open multiple independent references to the same temporary file (useful for consumer/producer patterns and surprisingly difficult to implement securely).

Documentation

Usage

Minimum required Rust version: 1.63.0

Add this to your Cargo.toml:

[dependencies]
tempfile = "3"

Example

use std::fs::File;
use std::io::{Write, Read, Seek, SeekFrom};

fn main() {
    // Write
    let mut tmpfile: File = tempfile::tempfile().unwrap();
    write!(tmpfile, "Hello World!").unwrap();

    // Seek to start
    tmpfile.seek(SeekFrom::Start(0)).unwrap();

    // Read
    let mut buf = String::new();
    tmpfile.read_to_string(&mut buf).unwrap();
    assert_eq!("Hello World!", buf);
}

Dependencies

~2–11MB
~136K SLoC