What’s New

macfuse

Developer Tools

File system integration

Latest macfuse-5.3.3 · by macfuseWebsitemacfuse/macfuse

Changelog

macfuse-5.3.3

macFUSE 5.3.3

Added 3
  • Add support for interrupting readers blocked on the FUSE device
  • Add function MFChannelInterrupt() to interrupt threads blocked in MFChannelCopyNextMessage() and MFChannelWaitForNextMessage() without closing the channel
  • Add a cancel-safe C trampoline for Swift API entry points
Changed 15
  • Update build process to use Xcode 26.6 (macOS 26.5 SDK)
  • Improve daemonization compatibility for file systems using the FSKit backend through libfuse and libfuse3
  • Update the kernel extension version to 5.3.3
  • Make channel receives interruptible by SIGHUP, SIGINT, SIGTERM, and SIGPIPE
  • Use XPC lightweight code requirements on macOS 14.4 and later when verifying the mount service
  • Defer the actual macOS mount process until first session use in libfuse
General
  • Update build process to use Xcode 26.6 (macOS 26.5 SDK)

  • Improve daemonization compatibility for file systems using the FSKit backend through libfuse and libfuse3

Kernel Extension (Kernel Backend)
  • Update the kernel extension version to 5.3.3

  • Add support for interrupting readers blocked on the FUSE device

    This is used by MFMount.framework to wake worker threads during teardown.

MFMount.framework
  • Add function MFChannelInterrupt()

    This allows callers to interrupt threads blocked in MFChannelCopyNextMessage() and MFChannelWaitForNextMessage() without closing the channel. When interrupted, both functions return an error and set errno to EINTR.

  • Make channel receives interruptible by SIGHUP, SIGINT, SIGTERM, and SIGPIPE

  • Add a cancel-safe C trampoline for Swift API entry points

    Swift code now runs with pthread cancellation disabled. Pending cancellation is delivered after returning from Swift to the C trampoline in the framework.

  • Use XPC lightweight code requirements on macOS 14.4 and later when verifying the mount service

  • Please note that parts of the MFMount.framework API may still change in future releases.

libfuse
  • Defer the actual macOS mount process until first session use

    This prevents XPC, DiskArbitration, CoreFoundation, and MFMount state from being created before daemonization in the normal fuse_main() flow.

  • Avoid forking in fuse_daemonize() after the macOS mount process has started

  • Improve signal handling on macOS by requesting an interrupt from the signal handler and performing the actual unmount from regular library code

  • Improve multithreaded loop teardown by interrupting the MFChannel after cancelling worker threads

  • Replace dispatch_semaphore_t with a pthread-based fallback and use timed waits where signal responsiveness is required

libfuse3
  • Defer the actual macOS mount process until first session use

    This prevents XPC, DiskArbitration, CoreFoundation, and MFMount state from being created before daemonization in the normal fuse_main() flow.

  • Avoid forking in fuse_daemonize() after the macOS mount process has started

  • Improve signal handling on macOS by routing interrupts through the normal unmount path

    For custom_io sessions, interrupts fall back to the regular session-exit behavior because libfuse3 does not own the mount lifecycle.

  • Improve multithreaded loop teardown by interrupting the MFChannel after cancelling worker threads

  • Replace dispatch_semaphore_t with a pthread-based fallback and use timed waits where signal responsiveness is required

Sponsor
  • Your support is important to sustaining the future development of this project. If macFUSE makes your life easier, consider sponsoring the project through GitHub Sponsors.
macfuse-5.3.2Pre-release

macFUSE 5.3.2

Added 2
  • Include Swift compatibility library in FSModule for macOS 15
  • Include Swift compatibility library in MFMount.framework for macOS 15 and earlier
Changed 1
  • Update the swift-collections package from version 1.4.1 to 1.6.0
FSModule (FSKit Backend)
  • Include Swift compatibility library

    The file system extension requires libswiftCompatibilitySpan.dylib on macOS 15.

MFMount.framework
  • Include Swift compatibility library

    The swift-collections package requires libswiftCompatibilitySpan.dylib on macOS 15 and earlier. This addresses macfuse/macfuse#1176.

  • Update the swift-collections package from version 1.4.1 to 1.6.0

  • Please note that parts of the MFMount.framework API may still change in future releases.

Sponsor
  • Your support is important to sustaining the future development of this project. If macFUSE makes your life easier, consider sponsoring the project through GitHub Sponsors.
macfuse-5.3.1Pre-release

macFUSE 5.3.1

Added 2
  • Add initial support for macOS 27
  • Add initial support for Xcode 27
Changed 4
  • Use the node identifier and generation as the authoritative handle for file system items instead of the inode number, performing FUSE_LOOKUP to get authoritative handle of directory entries returned by FUSE_READDIR
  • Improve performance when preparing messages sent to the file system server
  • Improve performance when enumerating directories by using FUSE_BATCH_FORGET
  • Update the kernel extension version to 5.3.1
Fixed 5
  • Fix a bug in open file handle management in FSModule
  • Remove the file system item from the name cache when handling FUSE_NOTIFY_INVAL_ENTRY to ensure the next lookup triggers a FUSE_LOOKUP request
  • Address an incompatibility with the macOS 27 SDK included in Xcode 27.0 beta 1
  • Fix a path deadlock in the high level API when using VNOP_MONITOR by adding the missing free_path() call in fuse_lib_monitor() in libfuse
  • Fix a path deadlock in the high level API when using VNOP_MONITOR by adding the missing free_path() call in fuse_lib_monitor() in libfuse3
Deprecated 1
  • Turn MFChannelCreateWithDeviceFileDescriptor() into a weak import as this function will be removed once MFMount() supports mounting volumes using the kernel backend
General
  • Add initial support for macOS 27

  • Add initial support for Xcode 27

FSModule (FSKit Backend)
  • Use the node identifier and generation as the authoritative handle for file system items instead of the inode number. Perform FUSE_LOOKUP to get authoritative handle of directory entries returned by FUSE_READDIR

    Previous releases assumed that the node identifier and inode number were identical, as is the case when using the high level libfuse API without use_ino. This change removes that shortcut and resolves macfuse/macfuse#1166 and macfuse/macfuse#1167.

  • Improve stability by fixing a bug in open file handle management

  • Improve performance when preparing messages sent to the file system server

  • Improve performance when enumerating directories by using FUSE_BATCH_FORGET

Kernel Extension (Kernel Backend)
  • Update the kernel extension version to 5.3.1

  • Remove the file system item from the name cache when handling FUSE_NOTIFY_INVAL_ENTRY

    This ensures that the next lookup triggers a FUSE_LOOKUP request and resolves macfuse/macfuse#1160.

  • Address an incompatibility with the macOS 27 SDK included in Xcode 27.0 beta 1

MFMount.framework
  • Turn MFChannelCreateWithDeviceFileDescriptor() into a weak import

    This function will be removed once MFMount() supports mounting volumes using the kernel backend. Check that the symbol is available before calling it.

  • Please note that parts of the MFMount.framework API may still change in future releases.

libfuse
  • Fix a path deadlock in the high level API when using VNOP_MONITOR. This adds the missing free_path() call in fuse_lib_monitor() and resolves macfuse/macfuse#1168.
libfuse3
  • Fix a path deadlock in the high level API when using VNOP_MONITOR. This adds the missing free_path() call in fuse_lib_monitor() and resolves macfuse/macfuse#1168.
Sponsor
  • Your support is important to sustaining the future development of this project. If macFUSE makes your life easier, consider sponsoring the project through GitHub Sponsors.
macfuse-5.3.0Pre-release

macFUSE 5.3.0

Added 9
  • Introduce a new channel API for exchanging FUSE messages with FUSE backends that significantly improves I/O performance for volumes mounted using the FSKit backend
  • Add support for the new channel API provided by MFMount.framework in FSModule (FSKit Backend)
  • Add support for the new FUSE_INIT flags FUSE_DARWIN_REPLY_BUF and FUSE_DARWIN_PAYLOAD_BUF to allow for zero-copy reads and writes
  • Add MFChannelRef for message-oriented communication with a backend
  • Add MFMessageRef for inspecting received FUSE messages
  • Add support for transport-provided reply buffers, allowing read replies to be written directly into the destination buffer
Changed 2
  • Update build process to use Xcode 26.5 (macOS 26.5 SDK)
  • Substantially improve I/O performance with reading files up to 15 times faster than in previous releases
Fixed 1
  • Improve stability by addressing a race condition when accessing cached volume statistics that could cause the file system extension to crash
General
  • Update build process to use Xcode 26.5 (macOS 26.5 SDK)

  • Introduce a new channel API for exchanging FUSE messages with FUSE backends. The new API significantly improves I/O performance for volumes mounted using the FSKit backend.

FSModule (FSKit Backend)
  • Add support for the new channel API provided by MFMount.framework

  • Add support for the new FUSE_INIT flags FUSE_DARWIN_REPLY_BUF and FUSE_DARWIN_PAYLOAD_BUF. The flags allow for zero-copy reads and writes.

  • Substantially improve I/O performance. Tests with the LoopbackFS reference file system show that reading files is up to 15 times faster than in previous releases.

  • Improve stability by addressing a race condition when accessing cached volume statistics that could cause the file system extension to crash.

MFMount.framework
  • Introduce a new channel API for exchanging FUSE messages with the FSKit Backend and the Kernel Backend.

    MFMount.framework is intended for developers porting FUSE user-space libraries to macOS, or adapting existing libraries to support mounting volumes using the FSKit backend. The framework handles the mount operation and provides a C API for communicating with the backend.

    The new channel API exposes FUSE messages as borrowed buffers instead of requiring callers to copy each message into a single contiguous buffer. This allows for zero-copy reads and writes for large payloads when using the FSKit backend.

    • Add MFChannelRef for message-oriented communication with a backend. A channel is associated with a volume when the volume is mounted.
    • Add MFMessageRef for inspecting received FUSE messages
    • Add support for transport-provided reply buffers, allowing read replies to be written directly into the destination buffer
    • Add blocking, non-blocking, and polling-style receive APIs

    Please note that parts of the MFMount.framework API may still change in future releases.

libfuse
  • Add support for the new channel API provided by MFMount.framework
libfuse3
  • Add support for the new channel API provided by MFMount.framework
Sponsors
  • Your support is important to sustaining the future development of this project. If macFUSE makes your life easier, consider sponsoring the project through GitHub Sponsors.
macfuse-5.2.0

macFUSE 5.2.0

Added 2
  • Introduce a new open source API for mounting volumes using the FSKit backend that enables fully sandboxed file systems
  • Add support for a file system item's allocation size in FSModule FSKit backend
Changed 5
  • Update build process to use Xcode 26.4 (macOS 26.4 SDK)
  • FSKit backend mount operation is now performed over XPC instead of relying on fork()/exec()
  • Improve the built-in log command to detect whether the output destination supports colored output
  • Improve the built-in install command to support selecting which components to install with privileged-helpers, file-system-extensions, and all options
  • Update libfuse3 to version 3.18.2
Fixed 2
  • Add a workaround for an FSKit/PluginKit issue that could prevent macFUSE volumes from being mounted after re-registering an already registered file system extension
  • Fix a bug when handling FUSE_RENAME messages with FUSE_DARWIN_CAP_RENAME_EXT enabled that could cause the source and destination file names to be parsed incorrectly
Removed 1
  • Remove the obsolete broker launch daemon io.macfuse.app.launchservice.broker
General
  • Update build process to use Xcode 26.4 (macOS 26.4 SDK)

  • Introduce a new open source API for mounting volumes using the FSKit backend. The new API enables fully sandboxed file systems, which was not previously possible.

    • The actual mount operation is performed over XPC. This means the FSKit backend does no longer rely on fork()/exec() to mount volumes.
    • The new API is already used by libfuse and libfuse3
    • When sandboxing your file system server, add a Mach lookup exception for the io.macfuse.mount service
    • The new MFMount.framework is located in /Library/Filesystems/macfuse.fs/Contents/Frameworks
    • Please note that the new API may change in future releases
FSModule (FSKit Backend)
  • Add support for a file system item's allocation size. Sparse files are not currently supported, so the value of this attribute is the item's size.

  • Add a workaround for an FSKit/PluginKit issue that could prevent macFUSE volumes from being mounted after re-registering an already registered file system extension, requiring a restart of the FSKit subsystem.

  • Remove the obsolete broker launch daemon io.macfuse.app.launchservice.broker, which was previously used to establish a connection between the file system extension and the file system server.

  • Improve the built-in log command to detect whether the output destination supports colored output. This is useful when piping log output to a file.

    % /Library/Filesystems/macfuse.fs/Contents/Resources/macfuse.app/Contents/MacOS/macfuse log stream
    Executing /usr/bin/log stream --debug --info --predicate "subsystem in { 'com.apple.FSKit', 'com.apple.LiveFS', 'io.macfuse' }" --color always
    Filtering the log data using "subsystem IN {"com.apple.FSKit", "com.apple.LiveFS", "io.macfuse"}"
    ...
    
  • Improve the built-in install command to support selecting which components to install. Supported options are privileged-helpers, file-system-extensions, and all. Omitting the component is equivalent to specifying all.

    % /Library/Filesystems/macfuse.fs/Contents/Resources/macfuse.app/Contents/MacOS/macfuse install --help  
    USAGE: macfuse install [--components <components> ...] [--force]
    
    OPTIONS:
      -c, --components <components>
                              Components to install (default: all)
      -f, --force
      -h, --help              Show help information.
    
  • Introduce foundational changes in preparation for new features in macFUSE 5.3

libfuse
  • Use new mount API MFMount.framework for mounting volumes using the FSKit backend
libfuse3
  • Update libfuse3 to version 3.18.2

  • Use new mount API MFMount.framework for mounting volumes using the FSKit backend

  • Fix a bug when handling FUSE_RENAME messages with FUSE_DARWIN_CAP_RENAME_EXT enabled that could cause the source and destination file names to be parsed incorrectly.

Sponsor
  • Work on this release has been sponsored by uint24 and others

  • Your support is important to sustaining the future development of this project. If macFUSE makes your life easier, consider sponsoring the project through GitHub Sponsors.

macfuse-5.1.3

macFUSE 5.1.3

Changed 3
  • Update build process to use Xcode 26.2 (macOS 26.2 SDK)
  • Update kernel extension to version 5.1.3
  • Introduce foundational changes in FSModule (FSKit Backend) in preparation for new features in macFUSE 5.2
Fixed 2
  • Add special handling for the O_EXEC open flag to prevent a kernel panic by treating it internally as O_RDONLY
  • Fix an issue where the extended attribute name passed to the setxattr handler was always an empty string by accounting for the additional position field and padding in FUSE_COMPAT_SETXATTR_IN_SIZE
General
  • Update build process to use Xcode 26.2 (macOS 26.2 SDK)
Kernel Extension (Kernel Backend)
  • Update kernel extension to version 5.1.3

  • Add special handling for the O_EXEC open flag to prevent a kernel panic. Internally, O_EXEC is treated as O_RDONLY, meaning a readable file descriptor will be requested from the file system server. For details, see macfuse/macfuse#1130.

FSModule (FSKit Backend)
  • Introduce foundational changes in preparation for new features in macFUSE 5.2
libfuse3
  • Fix an issue that resulted in the extended attribute name passed to the setxattr handler always being an empty string. On macOS, FUSE_COMPAT_SETXATTR_IN_SIZE needs to account for the additional position field and its associated padding. For details, see macfuse/macfuse#1134.
macfuse-5.1.2

macFUSE 5.1.2

Added 1
  • Add support for streaming logs using the log subcommand
Changed 1
  • Improve automatic file system extension registration with support for manual registration using the install subcommand and a --force flag to remove duplicate extensions
Fixed 1
  • Resolve compatibility issues with legacy versions of macOS by removing the io.macfuse.app.launchservice.broker launch service on unsupported versions
FSModule (FSKit Backend)
  • Improve automatic file system extension registration

    The file system extensions are registered automatically before mounting a volume and can be registered manually using the install subcommand. The --force flag removes any duplicate extensions before registering the current set.

    /Library/Filesystems/macfuse.fs/Contents/Resources/macfuse.app/Contents/MacOS/macfuse install --force
    
  • Add support for streaming logs using the log subcommand

    /Library/Filesystems/macfuse.fs/Contents/Resources/macfuse.app/Contents/MacOS/macfuse log stream
    
  • Resolve compatibility issues with legacy versions of macOS

    Previous releases installed the io.macfuse.app.launchservice.broker launch service on unsupported versions of macOS, which could result in the service crashing and the installer hanging. This release removes the service on unsupported versions of macOS.

macfuse-5.1.1

macFUSE 5.1.1

Changed 2
  • Update kernel extension to version 5.1.1
  • Disable VNOP_MONITOR support on macOS 15 to maintain compatibility with macOS versions before 15.4
Kernel Extension (Kernel Backend)
  • Update kernel extension to version 5.1.1

  • Disable VNOP_MONITOR support on macOS 15. VNOP_MONITOR was introduced in macOS 15.4. Disable the feature on macOS 15 to maintain compatibility with macOS versions before 15.4.

macfuse-5.1.0Pre-release

macFUSE 5.1.0

Added 11
  • Add new HelloFS demo file system (HelloFS-Framework-Swift) as a minimal Hello World example in 40 lines of code
  • Add support for the VNOP_MONITOR file system callback, available since macOS 15, which notifies file systems when the number of watchers for a file system item changes
  • Send FUSE_MONITOR message to the file system server when VNOP_MONITOR callback is invoked, with FUSE_MONITOR_BEGIN flag for new watchers and FUSE_MONITOR_END flag when watchers stop monitoring
  • Add support for mounting non-local volumes (typically distributed file systems) on macOS 26 via FSModule (FSKit Backend)
  • Add support for mount option local to treat volumes as local (typically physically attached storage), supported on macOS 15.4 and later
  • Add support for mount option volname=NAME to specify a name for the volume being mounted
Changed 9
  • Update build process to use Xcode 26.1 (macOS 26.1 SDK)
  • Update LoopbackFS demo file systems and add a libfuse3 variant (LoopbackFS-libfuse3-C)
  • Update kernel extension to version 5.1.0
  • Adapt fuse_clone_chan_fd_default() for macOS to not associate new FUSE device file descriptors with the original ones
  • Rename crtime (creation time) to btime (birth time) in libfuse3 macOS API extensions
  • Enable Clang module support in Framework to improve interoperability with Swift
Fixed 6
  • Fix a bug in VNOP_LINK that can cause a deadlock when a file system uses the same nodeid to represent both the original file system item and its link
  • Fix a bug in VNOP_MNOMAP that can cause a deadlock when VNOP_WRITE callback calls VNOP_MNOMAP
  • Fix f_mntfromname (fsname mount option) being truncated at 90 bytes; now supports names of up to 1024 bytes including the terminating null character
  • Fix a bug in the statfs API extension for macOS in libfuse3 and add missing fuse_lib_statfs$DARWIN() handler
  • Fix a bug in the threadid module in libfuse3 that prevented several file system callback handlers from being invoked
  • Fix a layout bug on macOS 26 and modernize layout in System Settings
Removed 1
  • Remove unsupported exchangedata() callback handler which has been superseded by renamex_np() and unsupported since macOS 11
Deprecated 1
  • Deprecate the exchangeDataOfItemAtPath:withItemAtPath:error: delegate method
General
  • Update build process to use Xcode 26.1 (macOS 26.1 SDK)

  • Update demo file systems

    • Update LoopbackFS demo file systems and add a libfuse3 variant (LoopbackFS-libfuse3-C)
    • Add new HelloFS demo 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.
Kernel Extension (Kernel Backend)
  • Update kernel extension to version 5.1.0

  • Add support for the VNOP_MONITOR file system callback

    The VNOP_MONITOR callback 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_MONITOR callback is invoked, the kernel extension sends a FUSE_MONITOR message (struct fuse_monitor_in) to the file system server running in user space
    • The FUSE_MONITOR_BEGIN flag is set when a new watcher starts monitoring the item
    • The FUSE_MONITOR_END flag is set when a watcher stops monitoring the item
  • Fix a bug in VNOP_LINK that can cause a deadlock in case a file system uses the same nodeid to represent both the original file system item and its link. In this case, trying to lock the link in VNOP_LINK resulted in a deadlock. For more information, see macfuse/macfuse#1120.

  • Fix a bug in VNOP_MNOMAP that can cause a deadlock. The VNOP_WRITE callback might end up calling the VNOP_MNOMAP callback. Attempting to lock the already locked file system item in the VNOP_MNOMAP callback caused the deadlock.

  • Fix f_mntfromname (fsname mount option) being truncated at 90 bytes. f_mntfromname supports names of up to 1024 bytes (including the terminating \0 character). 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, where NAME is a string. You can use the volname option to specify a name for the volume being mounted.

libfuse
  • Add new monitor callback handler and implement support for the new FUSE_MONITOR message. For more information, see "Kernel Extension".
libfuse3
  • Add support for mounting file systems using the FSKit backend. By default, the kernel backend is used to mount volumes. When specifying the mount option -o backend=fskit, libfuse3 will use the FSKit backend to mount the file system. For more information, see FUSE Backends.

  • Add new monitor callback handler and implement support for the new FUSE_MONITOR message. For more information, see "Kernel Extension".

  • Add utimens API extension for macOS. When FUSE_DARWIN_ENABLE_EXTENSIONS is set to 1 , the utimens handler 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 statfs API extension for macOS and add missing fuse_lib_statfs$DARWIN() handler

  • Fix a bug in the threadid module 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 GM type name prefix in Swift
    • Make UserFileSystem.MoveOptions more idiomatic for Swift
    • Add FileAttributeKey extension 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 NSObject categories UserFileSystemLifecycle, UserFileSystemOperations, and UserFileSystemResourceForks into actual protocols

  • Remove unsupported exchangedata() callback handler. exchangedata() has been superseded by renamex_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
macfuse-5.0.7

macFUSE 5.0.7

Added 1
  • Add support for creating a mount point in /Volumes automatically when mounting a volume
Changed 6
  • Update build process to use Xcode 26.0.1 (macOS 26.0 SDK)
  • Update Installer package to use absolute paths when invoking command line tools in the postinstall script
  • Update kernel extension to version 5.0.7
  • Improve support for macOS 26 in FSModule with FSClient now providing information about installed third party file system extensions
  • Introduce foundational changes in preparation for new FSKit features in macFUSE 5.1
  • Replace typeof with the __typeof__ builtin in libfuse3 headers for C23 compatibility
Fixed 3
  • Fix license file formatting for QuickLook rendering on macOS 26
  • Preserve a vnode's identity when marking it as dangling to fix fchmod(2) system call failures
  • Resolve symbolic links in the kernel extension path before attempting to load the kernel extension
Removed 1
  • Drop compatibility code for macOS 11 and earlier
General
  • Update build process to use Xcode 26.0.1 (macOS 26.0 SDK)

  • Update Installer package to use absolute paths when invoking command line tools in the postinstall script

  • Drop compatibility code for macOS 11 and earlier. macFUSE 5 supports macOS 12 through macOS 26.

  • Fix license file formatting. On macOS 26, QuickLook fails to render lists correctly if they are placed inside table cells in rich text documents.

Kernel Extension (Kernel Backend)
  • Update kernel extension to version 5.0.7

  • Preserve a vnode's identity when marking it as dangling. Resetting the identity causes the fchmod(2) system call to fail. This addresses macfuse/macfuse#1112.

  • Resolve symbolic links in the kernel extension path before attempting to load the kernel extension

FSModule (FSKit Backend)
  • Improve support for macOS 26. FSClient now provides information about installed third party file system extensions, enabling more reliable detection of whether a file system extension has been enabled by the user.

  • Add support for creating a mount point in /Volumes automatically when mounting a volume

  • Introduce foundational changes in preparation for new FSKit features in macFUSE 5.1

libfuse3
  • Replace typeof with the __typeof__ builtin in headers. The typeof keyword is part of the C23 ISO standard, but is not officially supported in older C ISO standards.

Discussion