Gmail Filesystem - GmailFS
Gmail Filesystem provides a mountable Linux filesystem which uses your Gmail account as its storage medium. Gmail Filesystem is a Python application and uses the FUSE userland filesystem infrastructure to help provide the filesystem, and libgmail to communicate with Gmail.
GmailFS supports most file operations such as read, write, open, close, stat, symlink, link, unlink, truncate and rename. This means that you can use all your favourite unix command line tools to operate on files stored on Gmail (e.g. cp, ls, mv, rm, ln, grep etc. etc.).
Please be gentle on the code. This is my first foray into Python and I'm sure the code is far from elegant. I'm particularly concerned with my attempts to manipulate mutable byte arrays. I'm sure that there must be a less clumsy way of doing it than the nasty list -> array -> string path I'm currently using. This language has a reputation as an excellent choice for rapid prototyping. The first working version of GmailFS took about 2 days of coding. There was an additional 1.5 days spent on performance tuning and bugfixing. Given that this includes language learning curve, the reputation seems well deserved. A special mention should go to libgmail and FUSE, both greatly contributed to the short development time.
Thursday July 19th 2007Released version 0.8.0 of Gmail Filesystem. This release requires the latest python-fuse bindings. GmailFS now uses the latest fuse-python API, so it no longer relies on the python-fuse backwards compatibility code. Russell Harmon has added support for per user configuration. Some issues with large files remain to be fixed in the next release.
Sunday April 22nd 2007A bug has been reported which may cause problems when trying to download large files. A new version will be uploaded as soon as I have time to investigate the cause.
Sunday March 11th 2007Released version 0.7.3 of Gmail Filesystem.
A bugfix release which should rectify:
- A problem that broke the editing of files stored on Gmail FS (as opposed to just copying them on and off the filesystem).
- The failure to handle some text encoding for non-English languages. Fix supplied by Christian Reitwiessner.
Tuesday January 23rd 2007Google has released MacFuse. This allows GmailFS (and other FUSE based filesystems to run under Mac OS X). Jean-Matthieu has posted step by step instructions on how to get Gmail Filesystem running under the Mac.
Tuesday February 7th 2006Released version 0.7.2 of Gmail Filesystem.
Fixed brain malfunction in previous release. Stand by for next daily update :-)
Monday February 6th 2006Released version 0.7.1 of Gmail Filesystem.
This release fixes a (sometimes) fatal bug in mount option parsing.
Sunday February 5th 2006Released version 0.7 of Gmail Filesystem.
Version 0.7 is mainly a bug fix release. Please see the changelog for details. Gmailfs currently requires the latest libgmail release (0.1.4 at the time of writing), and the most recent python FUSE bindings from CVS.
Tuesday November 29th 2005Released version 0.6 of Gmail Filesystem.
Version 0.6 has many changes including several code cleanup changes, the ability to enter your password when mounting instead of having to keep it in a config file and the ability to easily use GmailFS with EncFS, a FUSE based encrypted filesystem. All of these changes have been written by the Debian package maintainer, Sebastien Delafond (who I thank for his ongoing contributions to GmailFS). Please see the ChangeLog file for further details.
The obligatory screenshot shows me reading my Gmail via a Firefox launched from an executable stored on the same Gmail account I'm checking my email on. Très nerdy.
- At the moment I don't recommend storing your only copy of anything important on GmailFS. GmailFS is an alpha release and should be treated as such. It WILL be buggy.
- Performance is acceptable for uploading and downloading very large files (obviously dependent on you having access to decent bandwidth). However operations like ls -l on a large directory which requires lots of round-trips are extremely slow. The poor performance here is largely independent of bandwidth and is related to having to grab entire messages instead of being able to use message summaries. Someone is working on using subject/message summaries for all the metadata which will improve performance and decrease the load on Google's servers, both good things.
- I haven't done any testing where GmailFS opens the same file multiple times and performs subsequent operations on the file. I suspect it will behave badly.