Expand description
extattr
Yet another Extended Attributes library for Rust.
Why another crate for EA? Any difference from xattr?
Extended Attributes syscalls vary across implementations, for example, to set an EA:
// Linux
int setxattr(const char *path, const char *name, const void *value,
size_t size, int flags);
// FreeBSD
ssize_t extattr_set_file(const char *path, int attrnamespace,
const char *attrname, const void *data, size_t nbytes);
// macOS
int setxattr(const char *path, const char *name, void *value, size_t size,
u_int32_t position, int options);xattr erases differences in those APIs and provides a consistent, rusty
interface.
ⓘ
// A consistent API that would work on every OS
pub fn set<N, P>(path: P, name: N, value: &[u8]) -> Result<()>extattr aims to provide bindings close to the native one.
ⓘ
// Linux
pub fn setxattr<P, S, B>(
path: P,
name: S,
value: B,
flags: Flags,
) -> Result<()>
// FreeBSD
pub fn extattr_set_file<P, S, B>(
path: P,
attrnamespace: AttrNamespace,
attrname: S,
data: B
) -> Result<()>
// macOS
pub fn setxattr<P, S, B>(
path: P,
name: S,
value: B,
position: u32,
options: Options
) -> Result<()>In most cases, you would like to use xattr instead of extattr. However, if
you are on Linux and want to use that extra flags argument, or you are on macOS
and want to use the arguments position and options, then extattr probably
is a good choice:)
Enums
attrnamespace argumentFunctions
Deletes the extended attribute specified in
attrnamespace and attrname
for the file referred by the open file descriptor fd.Deletes the extended attribute specified in
attrnamespace and attrname
for the file referred by path. If path is a symlink, it will be
dereferenced.Deletes the extended attribute specified in
attrnamespace and attrname
for the file referred by path. If path is a symlink, extended attribute
will be removed from the link itself.Retrieves the value of the specified extended attribute for the file specified
in the open file descriptor
fd.Retrieves the value of the specified extended attribute for the file specified
in
path. If path is a symlink, it will be dereferenced.Retrieves the value of the specified extended attribute for the file specified
in
path. If path is a symlink, EA value of the link itself will be
returned.Returns a list of attribute names present in the requested namespace for
the file specified in the open file descriptor
fd.Returns a list of attribute names present in the requested namespace for
the file specified in
path. If path is a symlink, it will be dereferenced.Returns a list of attribute names present in the requested namespace for
the file specified in
path. If path is a symlink, EA names for the link
itself will be returned.Sets the value of the specified extended attribute to the data described by
data for the file referred by the open file descriptor fd.Sets the value of the specified extended attribute to the data described by
data for the file referred by path. If path is a symlink, it will be
dereferenced.Sets the value of the specified extended attribute to the data described by
data for the file referred by path. If path is a symlink, EA of the link
itself will be set.Type Definitions
Customized
Result type for extattr.