Welcome to Pegasus Mail & Mercury Sign in | Join | Help
The next generation of Mail Store
Well! It's been a while since I've written here - in fact, I admit I'm a little shocked how long... Oops: and I had promised myself I wouldn't have these long absences any more.

In my defense, I should say that I have been far from idle. Since the release of Pegasus Mail v4.51 and Mercury/32 v4.72, I've begun work on what is probably the single biggest change in the core innards of the programs since they were introduced: I am rewriting the Mail Store. Let me clarify that: the move from my old Borland C compiler to Visual C was a huge effort, but it was mostly about porting and tidying the existing code: what I am doing now is rewriting the deepest core of the program from the ground up.

The "Mail Store" is that part of the program that manages folders, messages, attachments - in fact, anything low-level to do with any mail message you can read in your copy of Pegasus Mail. The Mail Store currently in use in Pegasus Mail is very old - much of it has not changed markedly since the Windows version of the program was originally released in 1993. While it works quite well, it has become increasingly difficult to maintain, and nearly impossible to expand: it also does not lend itself to being made available to third-party developers (such as extensions writers). More pertinently, though, the Pegasus Mail code was not an entirely happy port to Mercury - many of the lingering performance issues associated with the MercuryI IMAP server can be directly attributed to the age of the Mail Store code.

The aim of the Mail Store rewrite is to have one common library used by both programs, and to apply the lessons I have learned in nearly 20 years of writing this type of program to producing something that will have industrial strength and high performance. This development is the basis for all the good things I have planned for both programs - a high-speed webmail interface for Mercury, new secure and encrypted folder formats for both programs, and much faster, more robust IMAP support that can take advantage of IMAP extensions when they are available (something the current code cannot easily do). The new Mail Store will also be directly available to extension and Daemon developers - for the first time, they will have access to the Mail Store that is exactly equal to that enjoyed by Pegasus Mail and Mercury themselves.

The process is going excellently, and is now well advanced. The target I had originally set myself was to have the new Mail Store essentially finished and ready to bolt into Pegasus Mail by the end of this year: past experience told me that I was probably being optimistic (it's symptomatic of how difficult the industry has become that I can't remember the last time I was able to hit a deadline I set myself) - but to my surprise, it's actually looking as though I may be on schedule this time. Last week, the new code initialized itself, then scanned and read a new mail folder for the first time: this week, it has successfully performed a comprehensive MIME parse on a new mail message... Each day brings new achievements, and a sense of satisfaction that things are finally being done in a modern, future-proof way.

Well, that will do for now: as soon as I can, I'll write another post here about The Pegasus Mail Thousand and what it's going to mean to the sustainability of the programs, and I'll make it my goal to post much more regular progress updates on what's happening behind the scenes.

All my best to you all!


-- David --

Posted: Wednesday, October 21, 2009 1:00 AM by David Harris


Coruscatus said:

I hope you haven't done away with one of Pegasus's most useful (to me) features: the fact that inbox mail messages are single text files (*.cnm).

# October 21, 2009 4:42 PM

Glen Jackson said:

I agree with Coruscatus, but maybe there will be an easy way to access .CNM files (or whatever they become) when needed, from an administrative standpoint.  Regardless, I am glad to hear that things are moving along nicely - this is very encouraging!  I look forward to the update!

# October 24, 2009 2:14 AM

David Harris said:

All existing formats and data are preserved and fully usable under the new mail store. The main thing about it is that it will make it much, much easier to extend the program and add new features that were hitherto difficult or impossible, like encrypted folders and easy archiving. I have a couple of cunning tricks up my sleeve as well that will become possible with the new code, but I'm going to keep those as a surprise... ;-)

# October 25, 2009 3:47 AM

konus said:

Thank you for the update!

I really hope, in the near future it would be possible to search and access pegasus mail folders with an local desktop search engine, like microsoft search or google desktop.

# October 28, 2009 10:32 AM

propecia said:

# May 23, 2013 11:45 AM

have a peek at these guys said:

Pegasus Mail Development Weblog : The next generation of Mail Store

# November 20, 2014 3:18 PM
Anonymous comments are disabled