macFUSE (formerly osxfuse or FUSE for OS X) provides foreign filesystem support under macOS.
Like the Linux variant of libfuse, it provides a user-land filesystem driver API, which is easier to develop for.
Command-line tools are provided, and a kernel module which facilitates binding drivers like sshfs, procfs, AccessibilityFS, GrabFS, LoopbackFS, SpotlightFS, and YouTubeFS to the file system.
Homepage
Download
Recent Releases
5.0.117 May 2025 03:15
minor feature:
lt;ul gt;.
lt;li gt;.
lt;p gt;Update libfuse3 to version 3.17.2 lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;an that could cause a crash of the file system process on failed mount attempts lt;/p gt;.
lt;p gt;When mounting a volume, the file system process expects to receive a socket handle for exchanging FUSE messages. Sending the mount status code without sending a socket handle first, can result in a crash. This only affected the FSKit backend. For details, see lt;a class="-link js--link" data-error-text="Failed to load title" data-id="3046384121" data-permission-text="Title is private" data-url="https://github.com/macfuse/macfuse//1071" data-hovercard-type="" data-hovercard-url="/macfuse/macfuse//1071/hovercard" href="https://github.com/macfuse/macfuse//1071" gt;#1071 lt;/a gt;. lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Address an that could result in the file system extension not being listed in System Settings lt;/p gt;.
lt;p gt;In some cases lt;code gt;PluginKit lt;/code gt; fails to discover the file system extension automatically. As a workaround we register the extension explicitly. This only affected the FSKit backend. For details, see lt;a class="-link js--link" data-error-text="Failed to load title" data-id="3046384121" data-permission-text="Title is private" data-url="https://github.com/macfuse/macfuse//1071" data-hovercard-type="" data-hovercard-url="/macfuse/macfuse//1071/hovercard" href="https://github.com/macfuse/macfuse//1071" gt;#1071 lt;/a gt;. lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Optimize the service that is responsible for brokering connections between the file system extension and file system processes lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Update uninstaller for macFUSE 5 lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Update build script and add target build options lt;code gt;--no-default lt;/code gt; and lt;code gt;--no-inherit lt;/code gt; lt;/p gt;.
lt;/li gt;.
lt;/ul gt;.
5.0.006 May 2025 03:15
minor feature:
lt;ul gt;.
lt;li gt;.
lt;p gt;Add experimental support for FSKit on macOS 15.4 and newer releases of macOS lt;/p gt;.
lt;p gt;macFUSE supports two backends for mounting file systems. By default, the legacy VFS kernel API is used to mount volumes. When specifying the mount-time option lt;code gt;-obackend=fskit lt;/code gt;, macFUSE will use FSKit to mount the file system. For more information, see lt;a href="https://github.com/macfuse/macfuse/wiki/FUSE-Backends" gt;FUSE Backends lt;/a gt;. lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Drop support for macOS 10.9 to 10.14. macFUSE 5.0.0 support macOS 10.15 and later releases of macOS. lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Make lt;code gt;macFUSE.framework lt;/code gt; swift-friendlier by adding generics and nullability annotations lt;/p gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Add new lt;code gt;macFUSE.framework lt;/code gt; delegate method for listing directories. The new delegate method supports returning directory entries including the name and the requested attributes of each entry. This is the first step in implementing support for lt;code gt;FUSE_READDIRPLUS lt;/code gt;. lt;/p gt;.
lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- (nullable NSArray amp;lt;GMDirectoryEntry * amp;gt; *).
ContentsOfDirectoryAtPath:(NSString *)path
IncludingAttributesForKeys:(NSArray amp;lt;NSString * amp;gt; *)keys
Error:(NSError _Nullable _Nonnull)error" gt; lt;pre class="notranslate" gt; lt;code gt;- (nullable NSArray amp;lt;GMDirectoryEntry * amp;gt; *)
ContentsOfDirectoryAtPath:(NSString *)path
IncludingAttributesForKeys:(NSArray amp;lt;NSString * amp;gt; *)keys
Error:(NSError _Nullable _Nonnull)error
lt;/code gt; lt;/pre gt; lt;/div gt;.
lt;/li gt;.
lt;li gt;.
lt;p gt;Update reference file systems for macFUSE 5. For more information, see the lt;a href="https://github.com/macfuse/demo" gt;demo lt;/a gt; repository. lt;/p gt;.
lt;/li gt;.
lt;li gt;
4.10.225 Apr 2025 01:37
minor feature:
Invalidate a vnode's identity in case the corresponding file is removed.
When performing a remove operation, the file might not actually be removed by the user space code. libfuse renames open files, hides them and defers removing them until all open file handles have been closed (unless hard_remove is enabled). This means we might come across the vnode again, e.g. while performing a readdir(3) operation. We need to invalidate the vnode's current identity to make sure Finder does not display any outdated information.
Build script optimizations
2.7.220 Oct 2014 16:05
minor feature:
Check for MacFUSE compatibility layer 3.x. Component property lists for
packages. Add support for case-insensitive Objective-C filesystems.
Add support for FUSE fallocate callback. Fix symlink support.
|