[Dovecot] plugin development guide for non-FS backing store

Timo Sirainen
Mon, 21 Sep 2009 05:44:07 -0000

On Sep 20, 2009, at 4:42 AM, Chang Song wrote:

> I was wondering if anyone has some sort of guide or reference on
> plugin development.
> We are trying to develop a non-filesystem backing store.
>
> So basically we do not store mailboxes for users in local
> filesystem. We do RPC call
> to fetch from fileservers.

Well, the best there exists currently is
http://dovecot.org/list/dovecot/2007-November/026632.html
  but it's for an old Dovecot version. You really should start with
Dovecot v1.2.

Do you need to use some existing mail database or is it something
completely new? I'm just wondering if my upcoming dbox filesystem
abstraction layer would help you.

Anyway, basically just go and look at lib-storage/mail-storage.h and
mail-storage-private.h and mailbox-list.h and mailbox-list-private.h.
Implement those using your RPC calls, using index_*() functions
wherever possible, just like the filesystem backends. You can also
make Dovecot use in-memory indexes only with your database, although
it probably would be better to just create them on local disk and act
as kind of a cache.