Skip to content

Releases: macfuse/macfuse

macFUSE 5.1.3

23 Dec 21:35
macfuse-5.1.3

Choose a tag to compare

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 #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 #1134.

macFUSE 5.1.2

20 Nov 00:52
macfuse-5.1.2

Choose a tag to compare

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

08 Nov 00:55
macfuse-5.1.1

Choose a tag to compare

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.0

30 Oct 17:02
macfuse-5.1.0

Choose a tag to compare

macFUSE 5.1.0 Pre-release
Pre-release

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 #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 #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

30 Sep 00:41
macfuse-5.0.7

Choose a tag to compare

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 #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.

macFUSE 5.0.6

13 Sep 05:43
macfuse-5.0.6

Choose a tag to compare

General

  • Use macOS 26.0 SDK instead of macOS 15.5 SDK to build macFUSE

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

libfuse3

  • Update libfuse3 to version 3.17.4

Framework

  • Fix a bug that could result in the file system process crashing after a failed mount attempt. The bug was introduces in version 4.10.0.

macFUSE 5.0.5

18 Jun 09:38
macfuse-5.0.5

Choose a tag to compare

macFUSE 5.0.5 Pre-release
Pre-release

Framework

  • Fix crash in after unmounting a volume. The bug has been introduced in version 5.0.0 and was caused by over-releasing an object on the mount thread. For details, see #1086.

macFUSE 5.0.4

18 Jun 03:22
macfuse-5.0.4

Choose a tag to compare

macFUSE 5.0.4 Pre-release
Pre-release

General

  • Improve compatibility with macOS 26. macOS 26 reports itself as macOS 16 for binaries that were built using the macOS 15 SDK. This affected the updater.

  • Add support for updating the bundled Launch Services when mounting a volume.

  • Add --force option to re-install the bundled Launch Services even though they are already up to date.

Kernel Extension (Kernel Backend)

  • Update kernel extension to version 5.0.4

  • Fix rare kernel panic when re-parenting "dangling" vnodes. Dangling vnodes were removed from the file hierarchy, but each retained a reference to its previous parent directory. This could trigger a kernel panic under certain conditions. For details, see #1085.

macFUSE 5.0.3

13 Jun 07:47
macfuse-5.0.3

Choose a tag to compare

macFUSE 5.0.3 Pre-release
Pre-release

General

  • Add support for macOS 26

  • Add support for Xcode 26

libfuse

  • Fix a Unicode normalization bug by using ICU instead of iconv to normalize file names. The iconv release bundled with macOS lacks full Unicode coverage (e.g., emojis). For details, see #1077.

libfuse3

  • Fix a Unicode normalization bug by using ICU instead of iconv to normalize file names. The iconv release bundled with macOS lacks full Unicode coverage (e.g., emojis). For details, see #1077.

macFUSE 5.0.2

03 Jun 21:59
macfuse-5.0.2

Choose a tag to compare

macFUSE 5.0.2 Pre-release
Pre-release

General

  • Use macOS 15.5 SDK instead of macOS 15.4 SDK to build macFUSE

  • Switch from App Services to Launch Services. This change streamlines the installation process and eliminates the need for users to authenticate as admin when using the FSKit backend for the first time.

  • Drop support for macOS 11. macOS 12 is the first macOS release that supports Swift Concurrency natively.

  • Update uninstaller to remove new Launch Services

libfuse3

  • Address compatibility issue with Darwin API extensions. The ino64_t type may be unavailable when _POSIX_C_SOURCE is defined. For more information, see #1080.