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 asreaddir
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d492040d6b832ebbf38f2fd860ff1046b8c08d34c203254771eec5972a4362f |
|
MD5 | 5df08ee7db6f13b888912e312e15d99c |
|
BLAKE2b-256 | 700a7a51db1234688ca2c51a6a1e24a3b4070a6a190f2ee3826e5c61a84e8ee9 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ced079f6f8454f80768ccee60e7857a06de16a4be4b6eee1bd79d2210d344011 |
|
MD5 | e2fac453ef22699d7ac4d2bd6815d018 |
|
BLAKE2b-256 | c85f5ca87305da857759c18a024958b517f33820661828153425ced58f59c8e2 |