FuseFS lets ruby programmers define filesystems entirely in Ruby.
That is - with FuseFS, you can now create a virtual filesystem out of
ruby objects, SQL databases, anything!
FUSE is a Linux kernel module + library that permits programmers to
do this without directly implementing anything in the kernel. (FUSE is
what permits SSHFS and GMailFS in Python - Surely we can do better!)
Sample proof-of-concept virtual filesystems include:
"dictfs": The entire contents of dict.org's definitions are
available at your fingertips! Mount it on a directory and "cat
mountpoint/hacker" to see definitions from the Jargon file, Webster's
dictionary, Free online computing dictionary, and more! (requires ruby-dict)
"sqlfs": browse your databases rows and columns as
mountpoint/tablename/<primary key>/field ! With full read-write support,
you can edit your table entries in your favorite editor! (requires
ruby-mysql)
Have I got your "oh the possibilities" creative juices flowing yet? Well
it's here and ready for the taking:
http://walker.deafcode.com/code/fusefs-0.1.tar.gz
You will need:
* Linux with a 2.6 kernel
* FUSE. On gentoo, this is as simple as: "emerge sys-fs/fuse"
You can read: README.txt and API.txt for how to quickly get set up.
Do note: This is a very preliminary version, and only something I've
been hacking on a few hours a day since Wednesday. If you spot a bug,
have a suggestion for a change, or want something with it, just email me
- I'm open to suggestions, and I'm not locking its API down anytime soon.
- Greg Millam
http://walker.deafcode.com/code/fusefs-0.2.tar.gz
Also included with this version is sample/yamlfs.rb - You can define a
filesystem in a YAML file of Hashes and Strings! Editable, too. (dirs ==
hashes, files == strings)
- Greg
Uhm...whoa. Way too early in the morning for this sort of power and
possibility. I'm not on Linux, and I haven't ever said to myself
"man, I wish I could do this"...but wow. Crazy cool idea! :)
Cheers,
Erik.
FuseFS now has a project page on rubyforge:
Please download FuseFS from there, to ease bandwidth off my home server =).
http://rubyforge.org/projects/fusefs/
> You will need:
>
> * Linux with a 2.6 kernel
> * FUSE. On gentoo, this is as simple as: "emerge sys-fs/fuse"
Why do I need a 2.6 kernel ? It seems to run just fine on 2.4.30.
Cheers,
Han Holl