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

tempfile

A library for managing temporary files and directories

38 stable releases (3 major)

3.13.0 Sep 28, 2024
3.10.1 Feb 26, 2024
3.9.0 Dec 28, 2023
3.8.1 Oct 26, 2023
0.5.1 May 22, 2015

#1 in Filesystem

Download history 1916611/week @ 2024-07-18 1936826/week @ 2024-07-25 2039439/week @ 2024-08-01 2159839/week @ 2024-08-08 2088416/week @ 2024-08-15 2138586/week @ 2024-08-22 1990285/week @ 2024-08-29 2195909/week @ 2024-09-05 2082835/week @ 2024-09-12 2028849/week @ 2024-09-19 2264355/week @ 2024-09-26 2289865/week @ 2024-10-03 2245872/week @ 2024-10-10 2340333/week @ 2024-10-17 2280182/week @ 2024-10-24 2262560/week @ 2024-10-31

9,576,303 downloads per month
Used in 16,426 crates (5,362 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