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

tempfile

A library for managing temporary files and directories

40 stable releases (3 major)

3.15.0 Jan 2, 2025
3.14.0 Nov 8, 2024
3.13.0 Sep 28, 2024
3.10.1 Feb 26, 2024
0.5.1 May 22, 2015

#1 in Filesystem

Download history 2227665/week @ 2024-09-24 2273124/week @ 2024-10-01 2253382/week @ 2024-10-08 2338397/week @ 2024-10-15 2293027/week @ 2024-10-22 2268700/week @ 2024-10-29 2304091/week @ 2024-11-05 2411345/week @ 2024-11-12 2367452/week @ 2024-11-19 2126062/week @ 2024-11-26 2407240/week @ 2024-12-03 2636564/week @ 2024-12-10 2186775/week @ 2024-12-17 1232812/week @ 2024-12-24 1618854/week @ 2024-12-31 2174188/week @ 2025-01-07

7,633,470 downloads per month
Used in 17,453 crates (5,717 directly)

MIT/Apache

99KB
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
~141K SLoC