← Back to all sparks
G

Gromox

COMMS
Velocity2.5

Groupware server backend with MAPI, IMAP and EWS support

Gromox is filling in Exchange Web Services fast enough to matter for non-Outlook clients.

groupwareexchange-compatibilityewsimapcalendaringmapi
Current state
Gromox ships a minor roughly every four to eight weeks and has moved from 3.0 to 3.9 in this window. The centre of gravity is EWS: 3.6 landed roughly two dozen operations at once — task CRUD, delegate management, calendar occurrences with timezones, full meeting invitation and cancellation lifecycle, read receipts — and every release since has extended or corrected it. Alongside that, 3.8 introduced a per-store split-process model for the Information Store and partial IMAP4rev2 support, and 3.9 made auto-accepted room bookings send confirmations and handle cancellations.
Where it's heading
The project is working outward from MAPI compatibility toward the protocols that non-Outlook clients actually speak. EWS is the clearest case, but the same pattern shows in IMAP (custom keywords, IMAP4rev2 commands, SENT* keywords fixed to test the Date header as the spec requires) and in AutoDiscover fixes that unblocked Thunderbird. A second, quieter thread is offloading format conversion to external tools — Pandoc for HTML/RTF, Chawan for HTML-to-text — rather than maintaining converters in-tree. Meeting and calendar handling generates the most fix traffic, which is what you would expect from the hardest part of an Exchange-compatible server.
Prediction
Expect EWS coverage to keep expanding toward whatever operations remain unimplemented, since that has been the consistent destination of feature work for five releases. The split-process Information Store introduced in 3.8 is the other thread to watch — a config bitmask suggests further isolation work is planned rather than finished.

Recent moves

  1. 16d ago

    3.9 makes room bookings and EWS meetings properly actionable

    The meeting processor now confirms auto-accepted bookings, handles cancellations and allows back-to-back room reservations, while EWS sends enough meeting properties for clients to treat invitations as actionable rather than plain appointments. Continues the calendar-correctness work that has followed every EWS expansion.

    View source ↗
  2. 1mo ago

    3.8 splits the Information Store per store and extends IMAP

    Introduces a per-store split-process model for the Information Store, turning istore_standalone into a bitmask, and adds partial IMAP4rev2 support along with custom per-message keywords. Pandoc becomes the preferred HTML/RTF converter, continuing the move to external tools for format conversion.

    View source ↗
  3. 3mo ago

    3.7 fixes shared calendars, EWS fields and Thunderbird discovery

    A fix-led release: Outlook no longer loses appointments when opening a shared calendar, EWS percentage-complete and received-time values are corrected, and AutoDiscover stops falsely advertising OWA API support, which had blocked Thunderbird entirely. Most of these are follow-on corrections to the EWS surface added in 3.6.

    View source ↗
  4. 4mo ago

    3.6 lands the full EWS meeting, delegate and task surface

    ⚡ SPARK

    The release that changes what clients can do against Gromox: roughly two dozen EWS operations arrive together, covering tasks, delegates, calendar occurrences and the complete meeting lifecycle, plus Offline Addressbook serving. Every release since has been extending or correcting this surface, which makes it the pivot point of the current arc.

    View source ↗
  5. 5mo ago

    3.5 adds per-service listen directives and fixes notifications

    Adds finer-grained listening socket configuration so services need not bind the wildcard address, and repairs several emsmdb notification paths including a use-after-free when notifications are sent over RPCH. The listen directives are a small but real deployment-hardening improvement.

    View source ↗
  6. 6mo ago

    3.4 adds pre-delivery junk shelving and tightens header handling

    Adds a pre-delivery junk shelving path with an lda_junk_rules directive, plus several correctness changes with visible effects: RFC 5322 headers are now treated as US-ASCII as mandated rather than assumed to match the body charset, and the meeting rule processor treats Tentative and Out-Of-Office as collisions alongside Busy.

    View source ↗