Skip to content

FUSE Backends

Benjamin Fleischer edited this page Oct 30, 2025 · 11 revisions

macFUSE 5.0 supports multiple APIs for mounting file systems.

By default, macFUSE uses the VFS API to mount file systems. When specifying the mount-time option -o backend=fskit, macFUSE will use FSKit to mount the file system.

VFS API

The VFS API is a kernel API for developing file systems. APFS and other Apple file systems are built on the VFS API. Developing a VFS file system requires shipping a kernel extension.

The development of the macFUSE kernel extension started more than a decade ago. It has been maintained, improved and optimized ever since. The macFUSE kernel code is stable and has a proven track record.

FSKit API

FSKit is a user-space API and has been introduced in macOS 15.4. FSKit is a modern successor to the VFS API.

Limitations

  • Using mount points outside of /Volumes is not supported by FSKit.
  • Files are always opened in read/write mode.
  • The FUSE notification API is not supported, yet.
  • Context information (fuse_context_t) is not available due to the information not being provided by FSKit.
  • Most mount options previously handled by the kernel are not implemented, yet.
  • I/O performance of FSKit volumes is not on par with volumes using the kernel extension backend.

Clone this wiki locally