NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #440 most downloaded on crates.io
unix extended filesystem attributes
Last release 1 years ago
21 Sep 2025
Ships unpredictably
gaps range from 2 weeks to 3.8 years
Some releases are documented
notes for 7 of 27 stable releases
3 versions withdrawn
withdrawn after publishing
11 years old
30 releases · first in 2015
This release fixes a long-standing bug where we didn't correctly handle the return value of the FreeBSD and NetBSD xattr syscalls.
This release fixes a long-standing bug where we didn't correctly handle the return value of the FreeBSD and NetBSD xattr syscalls.
On Linux (and macOS), the xattr API returns ERANGE if the result doesn't fit in the provided buffer. On FreeBSD (and NetBSD), it returns the number of bytes read even if the syscall fails to read the entire value. This library assumed FreeBSD behaved the same as Linux.
In releases prior to 1.6.0, this issue was unlikely to be encountered in practice (except at scale) because we always checked the size before we read the attribute. It was still incorrect (TOCTOU issue), but it would have required a race with someone changing the extended attributes to trigger the bug.
In 1.6.0 this issue started showing up in testing because we try reading once with a 4KiB buffer before checking the size.
Full Changelog: v1.6.0...v1.6.1
Xattr can now read extended attribute values, list extended attributes, etc. in a single syscall instead of 2 as long as the total size is at most 409
One column per quarter.
Xattr can now read extended attribute values, list extended attributes, etc. in a single syscall instead of 2 as long as the total size is at most 4096 bytes. The downside of this change is that, e.g., if a file has more than 4KiB of extended attributes, listing extended attributes on the file will require 3 syscalls (because the first "optimistic" one will fail).
Full Changelog: v1.5.1...v1.6.0
Nothing published for this version
Drops the rustix dependency from freebsd/netbsd (was unused).
Update rustix to 1.0.0. This:
c_char handling.Update the minimum rustix version.
Default for XAttrs.Debug for XAttrs.Fix a quick bug introduced in the last release: deref in get_path on linux/macos.
Fix a quick bug introduced in the last release: deref in get_path on
linux/macos.
Remove dependency on libc for macos.
Remove dependency on libc for macos.
Adds {get,set,list,remove}_deref functions to operate on symlink targets as the regular functions will operate on the symlinks themselves.
Adds {get,set,list,remove}_deref functions to operate on symlink
targets as the regular functions will operate on the symlinks
themselves.
fix "unsupported" build fix android build
Re-enable rustix support after upstream fix.
Re-enable rustix support after upstream fix.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →