From: Valient G. <vg...@po...> - 2005-04-30 01:00:56
|
Hi, 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"); channel.EventLoop(); > cat /tmp/hellofs/hello Hello world! 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 regards, Valient |