views:

128

answers:

3

The ROOT data analysis framework commonly used in high energy physics uses a binary file format that has internal structure like a real filesystem (i.e. folder & files). The ls() method output from the program look something like this:

  KEY: TH1D     name1
  KEY: TH1D     name2
  KEY: TH2D     name3
....

Where "TH1D" and "TH2D" etc. are just object type. It'd be so nice to browse the file in a dired-like interface in emacs. I certainly don't have the energy/time to write a dired interface for this from scratch (even with the help of the dired.el source). My question is: if possible, how can I just tape into the dired interface by re-implementing some functions to make a dired-like interface for the output like above?

I'm certainly not expecting a full-solution here, but rather pointers to examples, tutorial, and other useful info.

+3  A: 

If it's similar enough to a filesystem, perhaps you could write somekind of loopback driver taht actually allows you to mount the datafile as a filesystem, similar to the way you can mount an ISO image as a filesystem. My very limited understanding is that this isn't a terribly hard thing to do under Linux.

rmeador
Yes it is very easy and you can use it for many different purposes. See fuse.http://fuse.sourceforge.net/
Ben
+4  A: 

archive-mode or tar-mode might be good starting points.

legoscia
+1  A: 

xRootdfs from someone at slac seems to do this now. "rootdFS is a Posix filesystem for an Xrootd storage cluster. It is based on FUSE (Filesystem in Userspace) and runs in user space."

but I expect that you need root access to load the FUSE module.