storeio is a translator for devices and other stores. You can use it for user-level access to disks via /dev/hd0s1 instead of kernel-based device access.

$ settrans -ca foo /hurd/storeio myfile

Now, foo will look like a device, which gives you transparent decompression, partition handling, etc. It is a little like Linux's losetup, and you don't have to be root to use it!

It relies heavily on libstore.

Examples

You can make a file's content available as some block device (where foo is the name of the file to map):

settrans -ca node /hurd/storeio -T file foo

You can even ungzip files on the fly (bunzip2 is available as well):

settrans -ca node /hurd/storeio -T gunzip foo.gz

You can use the typed store, to create filter chains (of course this example is kind of useless since you could use the gunzip store directly):

settrans -ca node /hurd/storeio -T typed gunzip:file:foo.gz