- Fix crtime related panic that could occur on MacOS. See PR #322 for details.
- Add file handle argument to
getattr() - Change
poll()to take aPollHandleinstead 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
userscrate - Performance optimizations
- Add method to
Sessionto unmount non-SendFilesystems
- 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
forgetandbatch_forgetno longer require thatAllowRootbe set
- Ensure that
Filesystem::destroyis always called, when the filesystem is unmounted - Remove request parameter from
Filesystem::destroy. - Make
fuse_forget_onepublic, so thatFilesystem::batch_forgetcan 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::AutoUnmountso that it works whenAllowRootandAllowOtherare 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
KernelConfigduringinit - Support configuring filesystem timestamp granularity via
KernelConfig.set_time_granularityduringinit - Support requesting additional capability flags via
KernelConfig.add_capabilitiesduringinit
- Make
spawn_mount()safe - Change
flagsparameter ofcreate(),open(),opendir(),release(),releasedir()to be signed, so that it matches libfuse and the associated constants in libc - Change
flagsparameter ofsetxattr()to be signed, so that it matches libfuse - Change
maskparameter 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_ownerand fileflagsparameters toread()andwrite() - Add
umaskparameter tomknod(),mkdir()andcreate() - Add
KernelConfigparameter toinit()to allowFilesystemto 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
serializablethat will enable serde serialization/deserialization forFileType,FileAttr
- Forked as
fusercrate, 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,writeandreaddirmethods are signed integers now (breaking change, sorry) - Link
libosxfuseon macOS,libfuseon all other systems
- Fix extended attribute handling (
getxattrandlistxattrmethods changed andReplyXattrwas added) mountnow also returns aResultsince it may fail if the session fails to run- Filenames are now passed as
&OsStrin 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
unmounton BSD systems - Simplified
libfusedetection withpkg-config ReplyDirectory::sizedwas 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
Sendanymore 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
unmountreturns aResultnow since unmounting may fail internally- Fix
unmounton Linux systems - Remove deprecated file types from interface (got rid of
std::old_io) - Introducing
FileType
- Update to latest Rust nightly
spawn_mountreturns aResultnow 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
OsStrrather than a slice of bytes
- Update to latest Rust nightly
- Update to latest Rust nightly
- Ensure that
ReplyisSendto support asynchronous processing - Add CI testing under Linux
- Update to latest Rust nightly
- Use
build.rsandpkg-configto discoverlibfuse/libosxfuse
Initial release
No versioning (based on make, cargo and crates.io didn't exist yet)