This is an announcement of a new release of my C# bindings for Fuse, which
allows you to create virtual filesystems for Linux in C#. As I hope the
version number properly indicates, this is alpha quality code.
Work on updating to Fuse 2.3 (kernel API 6.1) has completed. The biggest
change however is that the interfaces have been much simplified over previous
versions, which should make it easier to create filesystems. There are two
levels to the API now, the lower level is similar to libfuse -- except that
it is object oriented and inode based. The higher level interface ties in
more with C#.
The lower level interface is mostly complete, except for a few operations
(like hard links, and extended attributes). It also needs more testing.
Development on the high level interface has only just begun, but here is an
example of what already works:
// example to create a filesystem with a couple files
Sulf.MapFS root = new Sulf.MapFS();
root["hello"] = "Hello world!\n";
root["README"] = "Try 'cat hello'\n";
// mount to /tmp/hellofs
Channel channel = Sulf.Mounter.Mount("HelloFS", root, "/tmp/hellofs");
> cat /tmp/hellofs/hello
MapFS is just one simple virtual directory implementation. Subdirectories can
be created by inserting hashtables into the map. Many more virtual directory
nodes are possible. It is also possible to mix and match from the two API
levels to gain as much control over the filesystem operations as you desire.
Online documentation and download links: http://pobox.com/~vgough/sulf