NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4573 most downloaded on crates.io
Write files atomically to a file system
Last release 1 months 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
One column per quarter.
Updated dependency on rand to version 0.10 (contributed by thehouseisonfire ).
rand to version 0.10 (contributed by thehouseisonfire).nix to version 0.31 (contributed by thehouseisonfire).Updated dependency on nix to version 0.30.
nix to version 0.30.Changed Rust edition from 2021 to 2024.
Explicitly set the MSRV to 0.85 (the first Rust version to support the 2024 edition).
rand to version 0.10 (contributed by
thehouseisonfire).nix to version 0.31 (contributed by
thehouseisonfire).Fixed documentation to state that discard() (not commit() ) is called on drop (contributed by Lucy ).
discard() (not commit()) is called on drop (contributed by Lucy).Fixed a build error with androideabi (contributed by xuxiaocheng0201 ).
androideabi (contributed by xuxiaocheng0201).Fixed some broken documentation links.
Added the AtomicWriteFile::directory method to allow accessing the file descriptor of the parent directory, without making any system call (this metho
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).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.
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.Fix a potential data loss problem with anonymous temporary files on btrfs (see GitHub issue #6 for details).
Update dependency on nix to version 0.28. This improves compatibility with Illumos, Solaris, and Solaris-like operating systems. (contributed by Rain
nix to version 0.28. This improves compatibility with Illumos, Solaris, and Solaris-like operating systems. (contributed by Rain).Detect whether anonymous temporary files are supported or not, and automatically fall back to named temporary files in case they're not.
Update dependency on nix to version 0.27 (contributed by messense ).
nix to version 0.27 (contributed by messense).* Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →