fusepy / fusepy

Simple ctypes bindings for FUSE
ISC License
785 stars 190 forks source link

libfuse versions #100

Open terencehonles opened 6 years ago

terencehonles commented 6 years ago

What will it take to be able to support both libfuse2 and libfuse3?

s-m-e commented 6 years ago

@terencehonles extremely well structured code ;) The changes between both versions are subtle but also quite significant. First, the mechanism of how a FUSE filessystem is started has been changed, which I guess is the smaller problem. Second, the parameter definitions of a lot of calls have been changed, eliminating some inconsistencies found in libfuse2 (ignoring the fact that some calls, which were already marked as deprecated, have been removed). From fusepy's perspective, it would require at least two versions of the fuse_operations and fuse_lowlevel_ops structure types and potentially also two versions each of the FUSE and FUSELL classes. Working with if-else-blocks for handling the differences within a single FUSE class for instance looks like ... hard to debug and maintain, for me at least.