GitHunt
UN

untitaker/rust-atomicwrites

Atomic file-writes.

rust-atomicwrites

Build Status
Windows build status

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 persist method doing the same thing.

License

Licensed under MIT, see LICENSE.

Languages

Rust95.4%Makefile4.6%
MIT License
Created January 20, 2015
Updated March 6, 2026