Announcing macFUSE 5.1.0 Posted on 30 Oct 2025
Release Notes
General
-
Update build process to use Xcode 26.1 (macOS 26.1 SDK)
-
Update demo file systems
- Update
LoopbackFSdemo file systems and add alibfuse3variant (LoopbackFS-libfuse3-C) - Add new
HelloFSdemo file system (HelloFS-Framework-Swift). It serves as a minimal “Hello World” example — in just 40 lines of code. - For more information, see the demo repository.
- Update
Kernel Extension (Kernel Backend)
-
Update kernel extension to version 5.1.0
-
Add support for the
VNOP_MONITORfile system callbackThe
VNOP_MONITORcallback is available since macOS 15 and notifies file systems when the number of watchers for a file system item changes. This allows distributed file systems to subscribe only to events for items that are actively being watched, improving efficiency and reducing unnecessary event handling.- When the
VNOP_MONITORcallback is invoked, the kernel extension sends aFUSE_MONITORmessage (struct fuse_monitor_in) to the file system server running in user space - The
FUSE_MONITOR_BEGINflag is set when a new watcher starts monitoring the item - The
FUSE_MONITOR_ENDflag is set when a watcher stops monitoring the item
- When the
-
Fix a bug in
VNOP_LINKthat can cause a deadlock in case a file system uses the samenodeidto represent both the original file system item and its link. In this case, trying to lock the link inVNOP_LINKresulted in a deadlock. For more information, see macfuse/macfuse#1120. -
Fix a bug in
VNOP_MNOMAPthat can cause a deadlock. TheVNOP_WRITEcallback might end up calling theVNOP_MNOMAPcallback. Attempting to lock the already locked file system item in theVNOP_MNOMAPcallback caused the deadlock. -
Fix
f_mntfromname(fsnamemount option) being truncated at 90 bytes.f_mntfromnamesupports names of up to 1024 bytes (including the terminating\0character). For more information, see macfuse/macfuse#1123.
FSModule (FSKit Backend)
-
Add support for mounting “non-local” volumes (typically distributed file systems) on macOS 26. Mounting “local” volumes (typically physically attached storage) is supported on macOS 15.4 and later macOS versions.
-
Add support for mount option
local. macOS is more aggressive in dealing with “local” volumes. Treat this option as experimental. -
Add support for mount option
volname=NAME, whereNAMEis a string. You can use thevolnameoption to specify a name for the volume being mounted.
libfuse
- Add new
monitorcallback handler and implement support for the newFUSE_MONITORmessage. For more information, see “Kernel Extension”.
libfuse3
-
Add support for mounting file systems using the
FSKitbackend. By default, the kernel backend is used to mount volumes. When specifying the mount option-o backend=fskit,libfuse3will use theFSKitbackend to mount the file system. For more information, see FUSE Backends. -
Add new
monitorcallback handler and implement support for the newFUSE_MONITORmessage. For more information, see “Kernel Extension”. -
Add
utimensAPI extension for macOS. WhenFUSE_DARWIN_ENABLE_EXTENSIONSis set to 1 , theutimenshandler is called with three time stamps — the file’s access, modification, and backup time stamps. By default, the handler is called with the file’s access and modification time stamps. -
Fix a bug in the
statfsAPI extension for macOS and add missingfuse_lib_statfs$DARWIN()handler -
Fix a bug in the
threadidmodule that prevented several file system callback handlers from being invoked when using the module -
Adapt
fuse_clone_chan_fd_default()for macOS. On macOS, there is no need to associate new FUSE device file descriptors with the original ones. -
Rename
crtime(creation time)btime(birth time). This change does not affect ABI stability, but it requires code updates when compiling a file system with this release and the macOS API extensions being enabled.
Framework
- Improve Swift support
- Enable Clang module support to improve interoperability with Swift
- Drop the
GMtype name prefix in Swift - Make
UserFileSystem.MoveOptionsmore idiomatic for Swift - Add
FileAttributeKeyextension defining additional framework-specific attribute keys - These changes have no affect on ABI stability, but they require code updates when compiling a file system with this release
-
Turn
NSObjectcategoriesUserFileSystemLifecycle,UserFileSystemOperations, andUserFileSystemResourceForksinto actual protocols -
Remove unsupported
exchangedata()callback handler.exchangedata()has been superseded byrenamex_np()and has been unsupported since macOS 11. This change deprecates the corresponding delegate method.- (BOOL)exchangeDataOfItemAtPath:(NSString *)path withItemAtPath:(NSString *)otherPath error:(NSError * _Nullable * _Nonnull)error
System Settings
- Fix a layout bug on macOS 26 and modernize layout



