31 releases
Uses old Rust 2015
| 0.4.4 | Sep 19, 2024 |
|---|---|
| 0.4.3 | Dec 28, 2023 |
| 0.4.2 | Oct 9, 2023 |
| 0.4.1 | Apr 12, 2023 |
| 0.0.9 | Mar 15, 2015 |
#41 in Filesystem
451,086 downloads per month
Used in 117 crates
(40 directly)
16KB
240 lines
rust-atomicwrites
Atomic file-writes. Works on both POSIX and Windows.
The basic idea is to write to temporary files (in the same file
system), and move them when done writing.
This avoids the problem of two programs writing to the same file. For
AllowOverwrite, rename is used. For DisallowOverwrite, link + unlink is
used instead to raise errors when the target path already exists.
This is mostly a port of the same-named Python package.
Example
use atomicwrites::{AtomicFile,DisallowOverwrite};
let af = AtomicFile::new("foo", DisallowOverwrite);
af.write(|f| {
f.write_all(b"HELLO")
})?;
Alternatives
- tempfile has a
persistmethod doing the same thing.
License
Licensed under MIT, see LICENSE.
Dependencies
~2–15MB
~169K SLoC