Skip to main content

Ctypes bindings for the high-level API in libfuse 2 and 3

Project description

mfusepy

Installation

pip install mfusepy

About this fork

This is a fork of fusepy because it did not see any development for over 6 years. Refuse was an attempt to fork fusepy, but it has not seen any development for over 4 years. Among lots of metadata changes, it contains two bugfixes to the high-level API, which I have redone in this fork. See also the discussion in this issue. I intend to maintain this fork as long as I maintain ratarmount, which is now over 5 years old.

The main motivations for forking are:

  • FUSE 3 support. Based on the libfuse changelog, the amount of breaking changes should be fairly small. It should be possible to simply update these ten or so changed structs and functions in the existing fusepy.
  • Translation layer performance. In benchmarks for a simple find call for listing all files, some callbacks such as readdir turned out to be significantly limited by converting Python dictionaries to ctype structs. The idea would be to expose the ctype structs to the fusepy caller.
    • Much of the performance was lost trying to populate the stat struct even though only the mode member is used by the kernel FUSE API.

The prefix m in the name stands for anything you want it to: "multi" because multiple libfuse versions are supported, "modded", "modern", or "Maximilian".

fusepy

fusepy is a Python module that provides a simple interface to FUSE_ and MacFUSE_. It's just one file and is implemented using ctypes.

fusepy requires FUSE 2.6 (or later) and runs on:

  • Linux (i386, x86_64, PPC, arm64, MIPS)
  • Mac OS X (Intel, PowerPC)
  • FreeBSD (i386, amd64)

Examples

See some examples of how you can use fusepy:

---------------------------------+----------------------------- memory | A simple memory filesystem loopback | A loopback filesystem context | Sample usage of fuse_get_context() sftp | A simple SFTP filesystem (requires paramiko)

Platforms

While FUSE is (at least in the Unix world) a Kernel feature, several user space libraries exist for easy access. libfuse acts as the reference implementation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mfusepy-0.0.1.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

mfusepy-0.0.1-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file mfusepy-0.0.1.tar.gz.

File metadata

  • Download URL: mfusepy-0.0.1.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for mfusepy-0.0.1.tar.gz
Algorithm Hash digest
SHA256 6d492040d6b832ebbf38f2fd860ff1046b8c08d34c203254771eec5972a4362f
MD5 5df08ee7db6f13b888912e312e15d99c
BLAKE2b-256 700a7a51db1234688ca2c51a6a1e24a3b4070a6a190f2ee3826e5c61a84e8ee9

See more details on using hashes here.

File details

Details for the file mfusepy-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: mfusepy-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for mfusepy-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ced079f6f8454f80768ccee60e7857a06de16a4be4b6eee1bd79d2210d344011
MD5 e2fac453ef22699d7ac4d2bd6815d018
BLAKE2b-256 c85f5ca87305da857759c18a024958b517f33820661828153425ced58f59c8e2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page