About Aeromys
Mailing Lists
Get Involved
Submit Patches
Report Bugs
Aeromys Design

Aeromys is an advanced webmail application server designed for flexibility, scalability, and speed. Its unique architecture allows for easy integration with existing environments, while still maintaining all the benefits of the standard stand-alone webmail client. There are three parts that make up what is globally called "Aeromys." They are front-ends, APIs, and the webmail daemon (webmaild).

  • Front-ends: A front end uses an API to create the user interface for the webmail application. Aeromys comes standard with a PHP front-end, using the PHP API. However, it is easy to create new front-ends. There is very little processing or data manipulation that happens in the front-end. It essentially just fetches data from the API and displays it to the user. In this way, PHP is essentially used as a templating engine to display information. It is easy to take an existing API and create ones own front-end or integrate it into an existing infrastructure. This part of Aeromys' architecture is what allows for great flexibility.
  • APIs: The APIs are the glue that hold the front-ends and webmaild together. They allow for easy creation of front-ends. These APIs are implementations of the ASMP (Aeromys Simplified Mail Protocol). They provide functions that the front-ends can call to access information from the webmail daemon through the ASMP. Aeromys comes standard with a PHP API, but it should be very easy to implement them in other languages as well. ASMP is well documented.
  • webmaild: The webmail daemon is where most of the work happens for Aeromys. This is a process that is constantly running in the background of the server. On one side, it communicates with the mail servers and caches and processes mail data and on the other side, it speaks the ASMP which provides an interface to this data to the APIs. The webmail daemon is where the intelligence is built into Aeromys. Since it is always running in the background, it is able to be hard at work on data processing while the user is reading email, between user page requests. This is what gives Aeromys its incredible speed. Its efficient management of cached data, by maintaining a sliding window of current information for each user, is what allows for scalability. The amount of cached allocated per user is also configurable so on smaller installations, a larger cache can be maintained.

Here is a diagram that explains the relationships between these three parts of Aeromys.

(click for larger image)

The following diagram shows the relationships between the different entities in an actual installation of Aeromys using the PHP front-end. This diagram goes into more detail of the inner workings of the webmail daemon and shows how information is requested by the user, processed by webmaild, and presented by Apache and PHP.

(click for larger image)

Development of Aeromys is progressing in iterative steps. Not all of the functionality mentioned above has actually been implemented yet. This document explains what Aeromys will look like at version 1.0 which will hopefully be released during the summer of 2005. For more details on this, check out our implementation roadmap.

Screen Shots

The login screen.

This screenshot shows the message index of my inbox.

The Internet is best viewed with Firefox