An open API service indexing awesome lists of open source software.

https://github.com/owenthewizard/mktemp-rs

A thin wrapper around libc's mkstemps and mkdtemp
https://github.com/owenthewizard/mktemp-rs

mkstemp rust rust-library temp tempdir tempfile

Last synced: 6 months ago
JSON representation

A thin wrapper around libc's mkstemps and mkdtemp

Awesome Lists containing this project

README

        

# 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.