Extend native file handling in OS X (was OSXFUSE)

FUSE for macOS

FUSE for macOS

  -  13.1 MB  -  Open Source
FUSE for macOS (was OSXFUSE) allows you to extend macOS's native file handling capabilities via third-party file systems. It is a successor to MacFUSE, which has been used as a software building block by dozens of products, but is no longer being maintained.

FUSE for Mac Features

As a user, installing the FUSE for macOS software package will let you use any third-party FUSE file system. Legacy MacFUSE file systems are supported through the optional MacFUSE compatibility layer.

As a developer, you can use the FUSE SDK to write numerous types of new file systems as regular user space programs. The content of these file systems can come from anywhere: from the local disk, from across the network, from memory, or any other combination of sources.

Writing a file system using FUSE is orders of magnitude easier and quicker than the traditional approach of writing in-kernel file systems.

Since FUSE file systems are regular applications (as opposed to kernel extensions), you have just as much flexibility and choice in programming tools, debuggers, and libraries as you have if you were developing standard macOS applications.

How It Works

In more technical terms, FUSE implements a mechanism that makes it possible to implement a fully functional file system in a user-space program on macOS.

It provides multiple APIs, one of which is a superset of the FUSE API (file system in user space) that originated on Linux. Therefore, many existing FUSE file systems become readily usable on Mac.

The FUSE for Mac OS software consists of a kernel extension and various user space libraries and tools. It comes with C-based and Objective-C-based SDKs. If you prefer another language (say, Python or Java), you should be able to create file systems in those languages after you install the relevant language bindings yourself.

The filesystems repository contains source code for several exciting and useful file systems for you to browse, compile, and build upon, such as sshfs, procfs, AccessibilityFS, GrabFS, LoopbackFS, SpotlightFS, and YouTubeFS.

How to Use

Install the .pkg file by following the installer prompts

Reboot your Mac if prompted after installation

Mount third-party file systems via Terminal or compatible apps

Use FUSE API or a compatible tool to interact with file systems

Manage or uninstall from System Preferences > FUSE

System Requirements
  • macOS 10.13 High Sierra or later
  • Intel or Apple Silicon (Rosetta may be required)
  • Administrator privileges for installation
  • Command Line Tools (for development use)
  • Approximately 50 MB of free disk space
PROS
  • Allows third-party file system support
  • Integrates well with macOS architecture
  • Works with SSHFS and NTFS tools
  • Lightweight and low resource usage
  • Open-source and customizable API
CONS
  • Requires developer-level configuration
  • Not all file systems are fully supported
  • Can pose security risks if misused
  • Rosetta needed for Apple Silicon use
  • Updates may lag behind macOS releases


Why is this app published on FileHorse? (More info)
  • FUSE 5.2.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    FUSE 5.2.0 Screenshot 1
  • FUSE 5.2.0 Screenshot 2

What's new in this version:

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

libfuse3:
- Update libfuse3 to version 3.18.2
- Use new mount API MFMount.framework for mounting volumes using the FSKit Backend 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.