Version 3.1.1 built on 2026-03-13
March 13, 2026 ยท View on GitHub
Fixes
- Pin to setuptools < 83 instead of <= 82 to allow matches against 82.0.1 and higher. It still is pinned to <83 because of the license specifier API break disaster.
Version 3.1.0 built on 2025-12-23
Most of the fixes and test/CI improvements were contributed by Thomas Waldmann. Many thanks! NetBSD is still work-in-progress.
API
- Add many more missing type hints.
Features
- Add
mfusepy.ENOATTRto be used as the correct value forgetxattrandremovexattr. - Make path decode/encode error policy configurable and switch from
stricttosurrogateescape. - Add
readdir_with_offsetimplementable interface method, which takes an additionaloffsetargument. Does not work correctly on OpenBSD. Help would be welcome. - Translate some of the libfuse2-only options (
use_ino,direct_io,nopath, ...) to the libfuse3 config struct. - Allow to set fuse library name via
FUSE_LIBRARY_NAMEenvironment variable. - Automatically test and therefore support Ubuntu 22.04/24.04 aarch64/x86_64, macOS 14/15 Intel/ARM, FreeBSD 14.3, OpenBSD 7.7, NetBSD 10.1.
Fixes
- Fix type definitions and examples on OpenBSD, FreeBSD, NetBSD, macOS, and others.
readdir: Also forwardst_inoin caseuse_inois set to True.- Avoid
readdirinfinite loop by ignoring the offset and returning offset 0, to trigger non-offset mode. Overwritereaddir_with_offsetto actually make use of offsets. getattr_fuse_3: pass argumentfiptofgetattr.- Avoid null pointer dereferences for
fipinftruncate,fgetattr, andlock.
Version 3.0.0 built on 2025-08-01
Version 2 was skipped because the git tags would have clashed with the original fusepy tags.
API
Operation.__call__is not used anymore. Use decorators instead, or checkLoggingMixInas to how to overwrite__getattribute__. This is the biggest change requiring an API break and was motivated by the type support.- Add type-hints. Do not check types at runtime! They may change in a major version,
.e.g.,
List->list->Sequence->Iterable. readdirmay now also return only a triple of (name, mode, offset).init_with_configarguments are now always structs. Prior, they were ctypes pointers to the struct.- As the old warning stated,
use_nswill be removed in version 4 and all timestamps will use nanoseconds then. SetFUSE.use_ns = Trueand then return only times as integers representing nanoseconds and expect returned times as such.
Features
- Add
overridesdecorator. - Add
log_callbackdecorator.
Version 1.1.1 built on 2025-07-07
Fixes
- Forward return code for
utimensandrename. - Restore compatibility with old fusepy implementations that implement
createwith only 2 arguments. - If FUSE 2 flag_nullpath_ok and flag_nopath members exist, then enable fuse_config.nullpath_ok in FUSE 3.
- Handle possible null path in all methods mentioned in nullpath_ok documentation.
Version 1.1.0 built on 2025-05-08
Features
- Support libfuse 3.17+.
Version 1.0.0 built on 2024-10-27
- First version with libfuse3 support.