Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cross-platform solution for mounting a custom filesystem

I have a need to make my data part of the machine's file system.

In windows it seems I have 3 options:

  1. Eldos' "Callback File System" (http://www.eldos.com/cbfs/)
  2. Dokan (dokan-dev.net)
  3. Pismo File Mount (http://www.pismotechnic.com/pfm/)

Of these 3 option 1 (Eldos) is by far the best looking option.

But ideally I would like to get a solution that has support for Linux/Unix and Mac as well. In otherwords, some common interface for the call-backs, but different implementations for the different filesystems.

Does anyone know of such a solution?

like image 618
Ries Avatar asked Feb 10 '10 08:02

Ries


1 Answers

UPDATE: PFM has had Mac and Linux ports for some time now. If portability is a primary concern then PFM is the option that does not involve shimming to different API's on the 3 main desktop platforms.

Full disclosure, I am the primary PFM developer at Pismo Technic Inc..

PFM and CBFS provide functionality that is built into Linux as FUSE, and is freely available for Mac as MacFUSE.

I believe your best bet is to use your own porting layer to isolate the bulk of your code from FUSE specifics on Linux/Mac, and PFM or CBFS specifics on Windows. Having written a Linux/Mac PFM port via low-level FUSE, I am confident that the differences between FUSE and PFM are pretty easy to manage. CBFS more literally exposes the native Windows file system model, and so will likely involve a larger functional difference.

The native Windows file system model is very different than the file system model on unix-like operating systems. This difference is hard to imagine by developers that have mostly dealt with either user mode Win32 or unix. Though a FUSE for windows type of technology is possible, in the end it would probably require so many Windows specific changes that it would end up being about the same as using PFM or CBFS on Windows.

like image 163
Joe Avatar answered Nov 16 '22 04:11

Joe