libferris 1.1.102 review

by on

libferris library is a virtual filesystem that exposes hierarchical data of all kinds through a common C++ interface

License: GPL (GNU General Public License)
File size: 0K
Developer: Ben Martin
0 stars award from

libferris library is a virtual filesystem that exposes hierarchical data of all kinds through a common C++ interface. Access to data is performed using C++ IOStreams and Extended Attributes (EA) can be attached to each file or directory to present metadata.

Ferris uses a plugin API to read various data sources and expose them as filesystems and to generate interesting EA. Current implementations include native (kernel disk IO with event updates using fam), XML (mount an XML file as a filesystem), DB4, xmldb, LDAP, HTTP, FTP, eet, sockets, RDF/XML, RDF/bdb, and mbox. EA generators include image, audio, and animation decoders.

Here are some key features of "libferris":
ferriscp, a superset of coreutils 'cp' command. A graphical version of cp called gfcp which has progress displays and nice 'cp -i' interface.
ferrisls, a superset of coreutils 'ls' command.
ferrisrm, replacement for coreutils 'rm' command. A graphical version called gfrm.
ferrismv, replacement for coreutils 'mv' command. A graphical version called gfmv.
fcat, replacement for coreutils 'cat' command.
ferriscd, bash2 'cd' which handles XPath resolution
ftouch, a superset of coreutils 'touch' command.
fmkdir, replacement for coreutils 'mkdir command.
fclipcopy, fclipcut, fcliplink, fclippaste, fclipredo fclipundo: command line tools for performing file movements. (Cut a file and paste it someplace to "move" that file).
findexadd, feaindexadd: clients to add new items to fulltext and EA indexes.
findexquery, feaindexquery: clients to query to fulltext and EA indexes.
findexcompact, feaindexcompact: clients to compact indexes, performing costly reclaim operations. Such tools are needed to allow index evolution without loosing great deals of query performance.
fschema: interaction with attribute schemas
fmedallion: querying and setting emblem associations for files.
fcompress: setting up and removing transparent (un)compression for files.
ferris-import-desktop-file, adding new *.desktop" files to the apps:// filesystem.
ferris-first-time-user: setting up "~/.ferris"
gfdl: download manager using the http and ftp filesystems (which use libcurl).
gfproperties: view all the lstat(2) information for a file in a GTK2 GUI. Also presents the emblem attachemnts for a file.
FerrisXalanTransform: like XalanTransform except some libferris functions are exported for the XSLT to use (see xsltfunctions/ for more detail).
ferris-capplet-auth, ferris-capplet-curl-ftp, ferris-capplet-general, ferris-capplet-index, ferris-capplet-locale, ferris-capplet-logging, ferris-capplet-version: tools for setting up libferris.

The following attributes are supported:
native kernel XFS EA
data available from lstat(2)
cryto hashes like md5 and sha1
as-xml serialization
schema data
emblem attachment metadata
many file system synthetic EA
ID3 tags in mp3/ogg files
jpeg images
png images
images loadable via ImageMagick
mpeg2 video
dolby ac3 information
djvu images
images loadable via imlib2
jasper images
Take a look in Ferris.cpp and Native.cpp for tryAddStateLessAttribute() for many other attributes of interest.

libferris can mount the following:
berkeley db4
sleepycats dbxml (libferris 1.1.11+)
video dvd
rpm files
tar files
sysv IPC (shared memory)

What's New in This Release:
The ability to mount xmms and amarok was added.
CLucene plugins were ported to the 0.9.x API.
Updates were made to
A new exif:flash-fired boolean EA was added, which shows part of exif:flash.

libferris 1.1.102 search tags