- Add file handle argument to
getattr()
- Change
poll()
to take aPollHandle
instead of au64
- Add low level API for manually mounting or wrapping a fuse file descriptor into a
Session
- Fix compatibility with MacFUSE 4.x
- Performance optimizations
- Add support for poll
- Add support for notifications
- ABI 7.11 support is now complete
- Remove dependency on
users
crate - Performance optimizations
- Add method to
Session
to unmount non-Send
Filesystem
s
- Improve an error message when using libfuse2
- Add
spawn_mount2()
- Deprecate
spawn_mount()
- Improve error messages
- Support compiling with musl
- Default
link()
&symlink()
now return EPERM instead of ENOSYS
forget
andbatch_forget
no longer require thatAllowRoot
be set
- Ensure that
Filesystem::destroy
is always called, when the filesystem is unmounted - Remove request parameter from
Filesystem::destroy
. - Make
fuse_forget_one
public, so thatFilesystem::batch_forget
can be implemented by users. - Fix
batch_forget
. Previously, it always received an empty list of inodes. - Fix
MountOption::AllowRoot
. Previously, using it resulted in a crash. - Fix
MountOption::AutoUnmount
so that it works whenAllowRoot
andAllowOther
are both not set. - Make log messages more verbose (now includes the operation)
- Deprecate
mount()
- Remove
FileAttr.padding
. This field was added by mistake, and does nothing - Fix crash when receiving an unknown FUSE operation type
- Minor performance optimizations
- Support building with MacFuse 4.x on OSX
- Support configuring max_write & max_readahead via
KernelConfig
duringinit
- Support configuring filesystem timestamp granularity via
KernelConfig.set_time_granularity
duringinit
- Support requesting additional capability flags via
KernelConfig.add_capabilities
duringinit
- Make
spawn_mount()
safe - Change
flags
parameter ofcreate()
,open()
,opendir()
,release()
,releasedir()
to be signed, so that it matches libfuse and the associated constants in libc - Change
flags
parameter ofsetxattr()
to be signed, so that it matches libfuse - Change
mask
parameter ofaccess()
to be signed, so that it matches libfuse and the associated constants in libc - Change lock type parameter of
getlk()
andsetlk()
to be signed, so that it matches libfuse and the associated constants in libc - Change atime & atime_now and mtime & mtime_now parameters of
setattr()
to make their relationship more obvious - Add
lock_owner
and fileflags
parameters toread()
andwrite()
- Add
umask
parameter tomknod()
,mkdir()
andcreate()
- Add
KernelConfig
parameter toinit()
to allowFilesystem
to configure the kernel connection attributes - Add support for
fallocate()
,ioctl()
,copy_file_range()
, andlseek()
- Add support for FUSE_BATCH_FORGET
- Add support for FUSE_READDIRPLUS
- Add support for FUSE_RENAME2
- Add FUSE_WRITE_KILL_PRIV flag for
write()
- Add FUSE_WRITEBACK_CACHE flag
- Add FUSE_NO_OPEN_SUPPORT flag
- Add FUSE_PARALLEL_DIROPS flag
- Add FUSE_HANDLE_KILLPRIV flag
- Add FUSE_POSIX_ACL flag
- Add FUSE_ABORT_ERROR flag
- Add FUSE_NO_OPENDIR_SUPPORT flag
- Add FUSE_CACHE_SYMLINKS flag
- Add FUSE_EXPLICIT_INVAL_DATA flag
- Add FUSE_IOCTL_COMPAT_X32 flag
- Add FOPEN_CACHE_DIR flag
- Add FOPEN_STREAM flag
- Add FUSE_MAX_PAGES flag
- Add max_pages, and time_gran support to init code path (these are not currently configurable)
- Add support for ctime in
setattr()
- Add support for timestamps before the unix epoch in
getattr()
andsetattr()
- Enable FUSE_BIG_WRITES for ABI >= 7.10
- Add FUSE_AUTO_INVAL_DATA constant
- Add ABI 7.20 to 7.31 feature flags. Support for these are incomplete.
- Add support for building with libfuse3
- Add support for building without libfuse/libfuse3 on Linux (i.e. there's now a pure Rust implementation of all features)
- Add
mount2()
with improved option API
- Added new feature
serializable
that will enable serde serialization/deserialization forFileType
,FileAttr
- Forked as
fuser
crate, at https://github.com/cberner/fuser - Add ATIME_NOW and MTIME_NOW support
- Add stubs for ioctl, fallocate, and poll for ABI 7.11
- Offsets to
read
,write
andreaddir
methods are signed integers now (breaking change, sorry) - Link
libosxfuse
on macOS,libfuse
on all other systems
- Fix extended attribute handling (
getxattr
andlistxattr
methods changed andReplyXattr
was added) mount
now also returns aResult
since it may fail if the session fails to run- Filenames are now passed as
&OsStr
in the filesystem interface - Removed publishing of documentation on GitHub pages. Docs are now available on https://docs.rs/fuse
- Add
FileType::Socket
- Documentation of releases is build by CI now and made available at https://zargony.github.io/rust-fuse
- Fix
unmount
on BSD systems - Simplified
libfuse
detection withpkg-config
ReplyDirectory::sized
was removed since it was impossible to use it safely
- Update to latest Rust stable - no longer needs nightly Rust
- A filesystem implementation doesn't need to be
Send
anymore to be mounted synchronously - A filesystem implementation doesn't need to be 'static anymore to be mounted asynchronously
- CI tests are covering nightly, beta and stable Rust under OSX and Linux now
- Update to latest Rust nightly
- Fix mounting of filesystems as non-root on Linux systems
- Update to latest Rust nightly
unmount
returns aResult
now since unmounting may fail internally- Fix
unmount
on Linux systems - Remove deprecated file types from interface (got rid of
std::old_io
) - Introducing
FileType
- Update to latest Rust nightly
spawn_mount
returns aResult
now since starting a new thread may fail- Paths are now passed using
std::path::Path
(got rid ofstd::old_path
) - FUSE options are now passed as a slice of
OsStr
rather than a slice of bytes
- Update to latest Rust nightly
- Update to latest Rust nightly
- Ensure that
Reply
isSend
to support asynchronous processing - Add CI testing under Linux
- Update to latest Rust nightly
- Use
build.rs
andpkg-config
to discoverlibfuse
/libosxfuse
Initial release
No versioning (based on make, cargo and crates.io didn't exist yet)