From: Valient G. <va...@gm...> - 2005-12-12 09:36:13
|
After prodding from Vincenzo, the OCaml interface writer, I've split my new language bindings into a standalone project based on SWIG. More information is available online: http://arg0.net/wiki/fusewrapper I hope this will help language binding writers to wrap the FUSE low-level API. The big part that SWIG can't provide is the callbacks from C into the output language. If you know how to write such callback code and are interested in language bindings, please feel free to contribute code to add callback bindings for your favorite SWIG output language. Currently C# is the only working output language. The interface is minimal - a separate (work in progress) C# library builds on top of this to provide a more powerful (and easier to use) interface. Questions, comments, code welcome. regards, Valient |
From: Valient G. <va...@gm...> - 2006-06-13 03:33:44
|
I've added this SWIG binding to the FUSE wiki page under language bindings. I haven't had much time to play with it the last few months, but I did build a Java filesystem with it a few weeks ago, and I've also built larger C# (and Nemerle) filesystems as well as simple Perl filesystems on top of it. So it may be of use to someone as a starting point for an unsupported language - or if you want a low-level API binding. It uses message passing between the C and hosted language bindings, rather then any language-specific features (eg. marshaled delegates in C#), so it should work on just about any SWIG supported language. One hack I didn't mention is that in order to create a list of all the valid return types for the different callbacks, I have a script that pulls the information out of fuse_lowlevel.h. In particular it looks for Miklos's comments in front of callbacks, of the form: * Valid replies: * fuse_reply_none() ... Fortunately Miklos has been fairly consistent in comments so far, which makes it easy. :-) The processed interface file then contains the function signatures along with valid return types and other scripts produce the necessary SWIG control structures and even some simple language specific bindings based on that. Watch out for sharp edges. regards, Valient On 12/12/05, Valient Gough <va...@gm...> wrote: > > After prodding from Vincenzo, the OCaml interface writer, I've split my new > language bindings into a standalone project based on SWIG. > > More information is available online: > http://arg0.net/wiki/fusewrapper > > I hope this will help language binding writers to wrap the FUSE low-level > API. The big part that SWIG can't provide is the callbacks from C into the > output language. If you know how to write such callback code and are > interested in language bindings, please feel free to contribute code to add > callback bindings for your favorite SWIG output language. > > Currently C# is the only working output language. The interface is minimal > - a separate (work in progress) C# library builds on top of this to provide > a more powerful (and easier to use) interface. > > Questions, comments, code welcome. > > regards, > Valient > > |