Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which module is the actual interface to FUSE from Python 3?

I'm just starting to learn FUSE and I'm going to use it with Python 3 under FreeBSD and MacOS. First of all, I'm a bit confused which module is the actual interface to FUSE from Python 3 side:

  • https://github.com/libfuse/python-fuse which is Python 2.x/3.x bindings for libfuse 2.x
  • https://github.com/libfuse/pyfuse3 which is a set of Python 3 bindings for libfuse 3 using asynchronous I/O. It enables you to easily write a full-featured Linux filesystem in Python.

So, it looks like, the actual version of FUSE library is 3 and it seems, I should use pyfuse3, but that remark about "Linux filesystem" makes me wonder if I should fallback to python-fuse to work happily under FreeBSD/MacOS.

like image 694
Mikhail Zakharov Avatar asked Jan 01 '26 00:01

Mikhail Zakharov


1 Answers

Well, that's what I found at the moment. In short:

  • python-fuse is in the official libfuse organization but it was not maintained for some time. Now it seems there is a maintainer of the project, so I hope it will survive.

  • fusepy is outside of official libfuse organization. It is a single file and uses ctypes.

  • refuse is a fork of fusepy, and also uses ctypes.

  • Also, there is pyfuse3 project which seems to be official, but no longer actively developed.

  • Finally, there is another project python-llfuse which is recommended by Nikratio one of the libfuse developers. The python-llfuse project used to recommend pyfuse3, but not anymore. It is also no longer actively developed.

So, as there is a good-old-official version that has a maintainer now, I tried to start with python-fuse on FreeBSD. Unfortunately it appeared to be broken, so I wrote a quick fix to help building it on non-Linux OS.

like image 198
Mikhail Zakharov Avatar answered Jan 02 '26 13:01

Mikhail Zakharov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!