Gmail Filesystem - GmailFS
Gmail Filesystem no longer works with the latest Gmail interface, and will not be maintained in the future. Fortunately Dave Hansen has converted the code to use IMAP instead of the Gmail UI, please look at Dave's IMAP Gmailfs page for details.
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.
News
Saturday February 13th 2009
Dave Hansen has converted the existing GmailFS code to use IMAP instead of the Gmail UI for data transport, those still interested in using GmailFS can look at Dave's IMAP Gmailfs page for details.
Sunday December 13th 2009
Unfortunately the GmailFS project has come to an end. libgmail has ceased being maintained by its developers, and as a result libgmail no longer works with the latest Gmail interface (and has not done so for many weeks). Without a working libgmail, GmailFS does not function, so the end of libgmail also spells the end of GmailFS.Thanks to all the people who supported GmailFS, especially those who sent in patches to fix bugs and add features. A special thank you to Sebastien Delafond who packaged and maintained GmailFS for Debian, he did an excellent job with the package, and was always a pleasure to interact with. Thanks also to the libgmail developers, without them GmailFS would not have been possible.
Thursday July 19th 2007
Released 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 2007
A 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 2007
Released 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 2007
Google 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 2006
Released version 0.7.2 of Gmail Filesystem.Fixed brain malfunction in previous release. Stand by for next daily update :-)
Monday February 6th 2006
Released version 0.7.1 of Gmail Filesystem.This release fixes a (sometimes) fatal bug in mount option parsing.
Sunday February 5th 2006
Released 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 2005
Released 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.
Screenshots
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.
Issues
- 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.

>