1 - About LUSE

LUSE is a Lua binding for FUSE, which is a library allowing creation filesystem drivers run in userspace. LUSE is a low level binding. FUSE itself it rather slow, so LUSE tries not to impede performance more than necessary. For that reason it is manipulating userdata and pointers directly rather than Lua strings, with the reduced safety implied.

LUSE tries to be complete, but is not supporting obsolete APIs. The binding is closely following the FUSE API, so in most case you can use FUSE documentation if the present page is not clear enough. The missing functions are missing because I've not used them yet. I can add them on request (a use case could be helpful for non-trivial ones).

LUSE module itself is very basic, so I developed several other modules to help the development of a complete filesystem.

errno contains many constants representing POSIX error numbers. It also have an accessor to query the errno variable (which contains the last error number).

userdata can create and manipulate untyped userdata, to be used as buffers for read and write commands of the filesystem.

posixio is not strictly necessary, but it is very useful to implement many types of filesystem, which redirect I/O request to another filesystem. It contains bindings to many file and directory manipulation functions. Here again the read and write functions manipulate untyped userdata to keep overhead minimal.

Support

All support is done through the Lua mailing list. If the traffic becomes too important a specialized mailing list will be created.

Feel free to ask for further developments. I can't guarantee that I'll develop everything you ask, but I want my code to be as useful as possible, so I'll do my best to help you. You can also send me request or bug reports (for code and documentation) directly at jerome.vuarand@gmail.com.

Credits

This module is written and maintained by Jérôme Vuarand. It is inspired by luafuse module by Gary Ng, but it has been rewritten completely from scratch.

This website, LUSE downloadable packages and LUSE mailing list are generously hosted by Luaforge.net. Consider making a donation.

LUSE is available under a MIT-style license.

2 - Download

LUSE sources are available in its Mercurial repository:

hg clone http://piratery.net/hg/luse/

Tarballs of the latest code can be downloaded directly from there: as gz, bz2 or zip.

LUSE is also available on its Luaforge project page.

3 - Installation

See README.txt inside the LUSE source package. Further installation instruction can be put here on request.