Safecat Len Budney February 29, 2000 1. Introduction safecat is an implementation of D. J. Bernstein's maildir algorithm. It can be used to write mail messages to a qmail-style maildir, or to write data to a "spool" directory reliably. There are no lockfiles with safecat, and nothing is left to chance. If safecat returns a successful exit status, then you can be (practically) 100% sure your data is safely committed to disk. Further, if data is written to a directory using safecat (or other implementations of the maildir algorithm), then every file in that directory is guaranteed to be complete. If safecat fails to write all of the data, there will be no file at all in the destination directory. Of course, you know that such a thing cannot be: between UNIX and the different hardware options available, a 100% guarantee is not possible. However, safecat takes every precaution possible in writing your data. 2. Getting safecat The source code for safecat may be downloaded from or from sunsite or one of its mirrors. To build and install safecat, follow the instructions in the included INSTALL file. To summarize: make make setup check 3. Copying safecat is offered under the terms of the BSD License. The included file COPYING is a copy of the license. 4. Credits The maildir algorithm implemented in safecat was devised by Professor D. J. Bernstein, and is implemented in his qmail mailer. Other (approximate) implementations of the algorithm exist, in procmail, mutt, and the Emacs mailreader Mew, but to my knowledge this is the only standalone implementation, and the most complete implementation outside of qmail itself.