mswatch 1.0.3 review

by on

mswatch project is a command line unix program that keeps two mailboxes synchronized more efficiently and with shorter delays than pe

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

mswatch project is a command line unix program that keeps two mailboxes synchronized more efficiently and with shorter delays than periodically synchronizing the two mailboxes.

mswatch watches mailboxes to know when to initiate mailbox syncs. Using mswatch, your mail synchronization program can be called on demand instead of through polling, resulting in prompter mail delivery and lower bandwidth usage and server load.

mswatch is designed to work in conjunction with mailbox synchronization programs, currently supports watching Linux (2.4+) hosted Maildirs (including Maildir folders, Maildir++), and is licensed under the GNU GPL. Future support for additional mailbox formats, especially for mbox, is planned.

Why mswatch
Keeping a set of mailboxes on multiple computers means keeping the copies synchronized (eg on one's desktop and laptop or on a personal computer that can not be reached while on the road an always-reachable server). While the IMAP protocol is designed to support this and is widely used, IMAP clients can only detect mailbox changes by querying the server.

Thus clients generally either sync when the user requests or sync periodically. However, because each mailbox sync uses server and network resources and because users often have a number of mailboxes, many of which receive mail infrequently, one must compromise between prompt message delivery and low server and network resource usage. Typical practice is to sync only when the user requests or to sync periodically with 5-10 minute frequencies. Nonetheless, it is often helpful for users to see new mail fairly soon after its arrival (eg notifications, group meeting changes, or active conversation threads).

mswatch addresses this speed of delivery vs resource usage tradeoff using interrupt-based instead of polling behavior to detect mailbox changes. mswatch asks each of the two mailstores to send mailbox change notifications; when mswatch receives a notification it in turn invokes the user's mailbox synchronization program for the changed mailbox. Thus, idle mailboxes do not use active resources and prompt mailbox synchronization is efficient.

Because mswatch abstracts mail changes and synchronization to the mailbox (instead of message) level and because mail watcher communication is one-way, extra mailbox syncs occur. While it would be great to avoid this extra work, it is in the noise compared to the number of empty syncs that polling accumulates.

For example, the case of new mail delivered to the mail server's INBOX:

(1) mswatch detects the changed server INBOX
(2) mswatch invokes the mail syncer for INBOX, which adds the mail to the local INBOX
(3) mswatch detects the changed local INBOX
(4) mswatch invokes the mail syncer for INBOX, which detects no changes

Thus two syncs occur in this case instead of the single necessary sync.

What's New in This Release:
watch_maildirs can watch Maildirs through symlinks (but symlink modifications are not detected, yet)
mswatch requests line buffering for stdout, to make mswatch output updates through loggers appear more frequently
mswatch detects and errors when there is only one store configured
improved mswatch store configuration error messages
documented watch_maildirs's expected Maildir layout

mswatch 1.0.3 search tags