storeio is a translator for devices and other stores.
It relies heavily on libstore.
You can make a file's content available as some block device (where
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