atomicwrites

Crates.ioatomicwrites
lib.rsatomicwrites
version0.4.4
sourcesrc
created_at2015-01-21 18:14:46.165877
updated_at2024-09-19 15:30:07.315818
descriptionAtomic file-writes.
homepagehttps://github.com/untitaker/rust-atomicwrites
repositoryhttps://github.com/untitaker/rust-atomicwrites
max_upload_size
id847
size22,305
Dan Gohman (sunfishcode)

documentation

https://docs.rs/crate/atomicwrites

README

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.

Commit count: 151

cargo fmt