Thursday Night

Paul Betts’s personal website / blog / what-have-you

vcachefs – a compelling solution to a remote iTunes library

Per my idea in my previous post, I decided to write my own FUSE filesystem; following the tradition of obscure names that end in ‘fs’ for filesystems, I am calling it vcachefs. Here’s the git repository at Github. I mention more in the README, but the goal is to be able to add network files to iTunes and other media apps’ libraries without the poor performance and random lockups that usually happen when you try to do this directly.

I’m still at the proof-of-concept stage right now, but you can see my plan in the TODO file. As of today, you can create a mirror of ‘/etc’ in some other folder – not too exciting, but now that I’ve got the base stuff working, I can put the caching stuff on top of it.

After I get the app working correctly at the command-line, I may consider making it a full “Mac-like” application (with a pretty icon and everything!) – I think a lot of people want to do this kind of thing, because requiring all of your library to be on the local computer is asinine.

For those who aren’t familiar, FUSE is a kernel interface that lets you quickly write your own virtual filesystems with a minimum amount of work, and without writing kernel code. While this approach isn’t very fast, it’s super-easy to get working, and there’s almost no bookkeeping stuff necessary. This has led people to write very strange yet useful “filesystems”, such as FlickrFS or WikipediaFS (which show Flickr collections / Wikipedia articles in your filesystem).

It’s pretty nice to come back to some old-school C hacking, while cool languages like Ruby and C# have a lot of fancy features, there’s nothing like busting out a copy of Vim and going to town.

Written by Paul Betts

March 16th, 2008 at 1:33 pm

Posted in Apple,Linux