mfusepy
Ctypes bindings for the high-level API in libfuse 2 and 3
Decision gist · record as of 2026-08-14
Yes. mfusepy is actively maintained, has no Python dependencies, supports both libfuse 2 and 3 across multiple Unix-like platforms, and carries no known vulnerabilities. Install it if you need to build a custom filesystem in Python and have libfuse available on your system. The ISC license is permissive. The main gotcha is the system-level fuse dependency, not the package itself.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires libfuse 2.6+ or later installed on your system (fuse or fuse3 package); Python 3.9 or later.
- Low friction install with no runtime dependencies.
- The package is actively maintained (last commit 2026-08-10) and has been in active development since its initial release.
License · maintenance · safety
ISC (permissive) — ISC is a permissive license with minimal restrictions, allowing commercial and private use with only attribution required. No significant constraints for most use cases.
last release 2026-03-13 (154 days) · last repo commit 2026-08-10 · 41 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 120,549 downloads/mo, #12,020 on PyPI
Alternatives
Verify before relying
pip install mfusepy
import mfusepy
class MyFilesystem(mfusepy.Operations):
def getattr(self, path, fh=None):
pass
fs = MyFilesystem()
mfusepy.FUSE(fs, '/mnt/point', foreground=True)- Whether the performance improvements mentioned (ctypes struct exposure) are measurable in typical workloads.
- Compatibility matrix across all supported platforms for libfuse 2 vs. 3.
- Whether the two bugfixes from the original fork have been fully validated in production use.
What it is and what it does
mfusepy is a ctypes-based Python wrapper around libfuse that lets you implement custom filesystems in pure Python. Instead of writing C code, you subclass the Operations class and implement methods like getattr, read, write, and readdir to define how your filesystem behaves. The kernel then mounts your Python filesystem as a regular volume that applications can interact with transparently.
This is a maintained fork of the long-unmaintained fusepy project, adding support for both libfuse 2 and libfuse 3 and addressing performance bottlenecks in the original. It runs on Linux, macOS, FreeBSD, NetBSD, and OpenBSD. The package has no Python dependencies—it relies only on ctypes and the system libfuse library—making installation straightforward once you have the underlying fuse library installed.
Use it for
- Build a loopback filesystem that presents existing files with custom metadata or access control.
- Create an in-memory filesystem for temporary data that persists only during the session.
- Mount remote storage as a local filesystem without implementing a full driver.
- Implement a read-only archive filesystem that extracts and serves files on demand.
- Prototype filesystem semantics or test application behavior against custom filesystem behavior.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
mfusepy is actively maintained, has no Python dependencies, supports both libfuse 2 and 3 across multiple Unix-like platforms, and carries no known vulnerabilities. Install it if you need to build a custom filesystem in Python and have libfuse available on your system. The ISC license is permissive. The main gotcha is the system-level fuse dependency, not the package itself.
Install
mfusepy on PyPI
Before you install
Low friction install with no runtime dependencies. The package is actively maintained (last commit 2026-08-10) and has been in active development since its initial release. You must separately install the fuse or fuse3 system package.
Requires libfuse 2.6+ or later installed on your system (fuse or fuse3 package); Python 3.9 or later.
License in practice
ISC is a permissive license with minimal restrictions, allowing commercial and private use with only attribution required. No significant constraints for most use cases.
Quickstart
pip install mfusepy
import mfusepy
class MyFilesystem(mfusepy.Operations):
def getattr(self, path, fh=None):
pass
fs = MyFilesystem()
mfusepy.FUSE(fs, '/mnt/point', foreground=True)
Verify before relying
- Whether the performance improvements mentioned (ctypes struct exposure) are measurable in typical workloads.
- Compatibility matrix across all supported platforms for libfuse 2 vs. 3.
- Whether the two bugfixes from the original fork have been fully validated in production use.
Package facts
| License | ISC permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 154 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 120,549 / month, #12,020 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: MacOSOperating System :: POSIXOperating System :: POSIX :: BSD :: FreeBSDOperating System :: POSIX :: BSD :: OpenBSDOperating System :: UnixProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: System :: Filesystems |
Evidence: mfusepy-3.1.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “create custom filesystem python”
- mfusepymfusepy provides Python bindings to libfuse 2 and 3, enabling you to…
- fusepyfusepy provides Python bindings to FUSE (Filesystem in Userspace),…
- pathlib-abcProvides abstract base classes for implementing path-like objects…
Give your agent the search over MCP, or paste the wish link into any chat.
More Filesystems packages
Watches file system changes and triggers callbacks or process restarts when files are modified, with both synchronous and asynchronous APIs.
Install it if you need file system monitoring for development or production workflows.
Watchdog monitors file system events across Linux, macOS, Windows, and BSD, providing a Python API and command-line utilities to detect file and directory changes in real time.
Install it if you need to monitor file system events; the medium install friction is a one-time cost for reliable, platform-native behavior.
Portalocker provides cross-platform file locking with support for exclusive and shared locks, plus Redis-based distributed locks and process-aware PID file locking.
Install it if you need file or process coordination; the optional extras (pywin32, redis) are only required for specific lock types.
Infers file type and MIME type by examining magic number signatures in files or byte buffers, with no external dependencies.
However, the last release was 2022-11-02 with no recent commits, so it may not support the newest file formats or receive bug fixes promptly.
Sanitize and validate filenames and file paths by removing or replacing invalid characters, reserved names, and unprintable characters across multiple platforms (Linux, Windows, macOS, POSIX, and universal).
Install it if you need reliable filename or path validation across platforms; the low friction and clear API make it a straightforward addition to any project…
Provides object-oriented filesystem path handling as a backport for Python versions before 3.4, when pathlib became part of the standard library.
See also fusepy · pyobjc-framework-NetFS · pyobjc-framework-KernelManagement · pyfakefs · fsspec · morefs · ftputil · pyobjc-framework-FSKit · dissect.volume · fs