# mktemp-rs A thin wrapper around `libc`'s `mkstemps` and `mkdtemp`. ## Quick Start ([Documentation](https://docs.rs/mktemp-rs)) `Cargo.toml`: ```diff name = "my-awesome-project" version = "0.1.0" authors = ["me"] [dependencies] +mktemp-rs = "0.1.0" ``` `main.rs`: ```rust use std::fs; use std::io::{Seek, SeekFrom, Read, Write}; use mktemp::TempFile; fn readme() { let path; { let mut tf = TempFile::new("my-temp-file-", ".txt").expect("Failed to create tempfile"); let mut buf = [0u8; 12]; tf.write(b"Hello world!").expect("Failed to write to tempfile"); tf.seek(SeekFrom::Start(0)).expect("Failed to seek in tempfile"); tf.read(&mut buf).expect("Failed to read tempfile"); assert_eq!(&buf, b"Hello world!"); path = tf.path().to_string(); } assert!(fs::metadata(&path).is_err()); } ``` `mktemp-rs` currently only support Unix platforms. As always, pull requests are welcome. ### Tests [`readme`](tests/readme.rs) tests the example in this readme. [`temp_dir`](tests/temp_dir.rs) tests various TempDir functions. [`temp_file`](tests/temp_file.rs) tests various TempFile functions. ### Coding Style Obey `rustfmt` and Rust 2018 conventions. ## Contributing Pull requests are always welcome. See [TODO](TODO.md). ## Versioning This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Changes are documented in the [Changelog](CHANGELOG.md). See the [tags on this repository](https://github.com/owenthewizard/mktemp-rs/tags) for available releases. ## Authors See [the list of contributors](https://github.com/owenthewizard/mktemp-rs/contributors). ## License `mktemp-rs` is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE.md) and [LICENSE-MIT](LICENSE-MIT.md) for details. ## Acknowledgments * [mkstemp](https://gitlab.com/worr/mkstemp) by William Orr for inspiration and code base.