What’s New

macfuse macfuse-5.3.0

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.
View original

Discussion