PackageTrack
Sign in Get early access

atomic-write-file

Write files atomically to a file system

0.3.1 5.2M downloads/mo #4461 most downloaded on crates.io andreacorbellini/rust-atomic-write-file

What this package is like to depend on

Last release 12 days ago

11 Aug 2026

Ships fairly regularly

a new release about every 3 months

Nearly every release is documented

notes for 11 of 11 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

11 releases · first in 2023

2 releases in the last 12 months

see the full history below

Release timeline

11 releases · Aug 2023 to Aug 2026
2024 2025 2026
Release Pre-release

Releases

latest 11
  1. 0.3.1 11 Aug 2026
    Release notes

    Unix changes

    Open source →
  2. 0.3.0 11 Sep 2025
    Release notes

    Unix changes

    • Updated dependency on nix to version 0.30.

    Breaking changes

    • Changed Rust edition from 2021 to 2024.

    • Explicitly set the MSRV to 0.85 (the first Rust version to support the 2024 edition).

    Open source →
    Release notes

    Unix changes

    Open source →
  3. 0.2.3 27 Jan 2025
    Release notes
    • Fixed documentation to state that discard() (not commit()) is called on drop (contributed by Lucy).
    Open source →
    Release notes
    • Fixed documentation to state that discard() (not commit()) is called on drop (contributed by Lucy).
    Open source →
  4. 0.2.2 03 Nov 2024
    Release notes

    Unix changes

    Open source →
    Release notes

    Unix changes

    Open source →
  5. 0.2.1 23 Sep 2024
    Release notes
    • Fixed some broken documentation links.
    Open source →
    Release notes
    • Fixed some broken documentation links.
    Open source →
  6. 0.2.0 23 Sep 2024
    Release notes

    New features

    • Added the AtomicWriteFile::directory method to allow accessing the file descriptor of the parent directory, without making any system call (this method is available on all platforms, but it has a meaningful implementation only on Unix).

    Unix changes

    • Updated dependency on nix to version 0.29.

    • Sync the parent directory after committing or discarding the temporary file (via fsync(2)). This ensures that changes are persisted and not rolled-back if a crash occurs.

      In the previous releases, syncing the directory was intended to be a step that had to be explicitly performed by the caller if they wanted this behavior, and it was intentionally left out as a performance improvement for those callers that did not care about changes being persisted. However we do realize that callers may not be aware of the importance of this step, hence now it's done automatically.

    Breaking changes

    • The unnamed-tmpfile is now disabled by default and needs to be explicitly enabled with features = ["unnamed-tmpfile"] in Cargo.toml. This decision was made to better support processes that run early at boot, and filesystems that have poor support for anonymous temporary files.
    Open source →
    Release notes

    New features

    • Added the AtomicWriteFile::directory method to allow accessing the file descriptor of the parent directory, without making any system call (this method is available on all platforms, but it has a meaningful implementation only on Unix).

    Unix changes

    • Updated dependency on nix to version 0.29.

    • Sync the parent directory after committing or discarding the temporary file (via fsync(2)). This ensures that changes are persisted and not rolled-back if a crash occurs.

      In the previous releases, syncing the directory was intended to be a step that had to be explicitly performed by the caller if they wanted this behavior, and it was intentionally left out as a performance improvement for those callers that did not care about changes being persisted. However we do realize that callers may not be aware of the importance of this step, hence now it's done automatically.

    Breaking changes

    • The unnamed-tmpfile is now disabled by default and needs to be explicitly enabled with features = ["unnamed-tmpfile"] in Cargo.toml. This decision was made to better support processes that run early at boot, and filesystems that have poor support for anonymous temporary files.
    Open source →
  7. 0.1.4 25 Apr 2024
    Release notes

    Linux changes

    • Fix a potential data loss problem with anonymous temporary files on btrfs (see GitHub issue #6 for details).
    Open source →
    Release notes

    Linux changes

    • Fix a potential data loss problem with anonymous temporary files on btrfs (see GitHub issue #6 for details).
    Open source →
  8. 0.1.3 01 Mar 2024
    Release notes

    Unix changes

    • Update dependency on nix to version 0.28. This improves compatibility with Illumos, Solaris, and Solaris-like operating systems. (contributed by Rain).
    Open source →
    Release notes

    Unix changes

    • Update dependency on nix to version 0.28. This improves compatibility with Illumos, Solaris, and Solaris-like operating systems. (contributed by Rain).
    Open source →
  9. 0.1.2 30 Nov 2023
    Release notes

    Linux changes

    • Detect whether anonymous temporary files are supported or not, and automatically fall back to named temporary files in case they're not.
    Open source →
    Release notes

    Linux changes

    • Detect whether anonymous temporary files are supported or not, and automatically fall back to named temporary files in case they're not.
    Open source →
  10. 0.1.1 28 Nov 2023
    Release notes

    Unix changes

    • Update dependency on nix to version 0.27 (contributed by messense).
    Open source →
    Release notes

    Unix changes

    • Update dependency on nix to version 0.27 (contributed by messense).
    Open source →
  11. 0.1.0 22 Aug 2023
    Release notes
    • Initial release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive