On Friday 11 September 2015 00:43:16 Timo Sirainen wrote:
I've been once in a while over the years thinking about implementing CalDAV (and CardDAV) to Dovecot. It might be time to start that soon. Does anyone have any suggestions? So far my main goals would be:
- scalable, of course
- configurable storage (object storage, regular fs, maybe some key- value dbs, maybe storing as emails) - efficient indexes (potentially using key-value dbs? or maybe just local files. not sure yet what kind of indexing is needed) - have it work with dsync (= replication & migration)
The kolab project already store calendars and cards as e-mails. I use dovecot from few years using part of this project. They use libkolabxml who provide binding for encoding/decoding objects ; this is an approach with advandages and disadvantages ( an external library can be upgraded to reflect changes in object format) but i think compatibility is a good thing at the end. Maybe this could be pluggable to allow different xml formats, but I think all should be more or less similar.
Some things I wonder about:
- Maybe there is already some code out there that could be used to implement it faster? - Maybe even use something else besides C to
implement
it.. Then again that makes integration to Dovecot more difficult. - Is anybody interested in helping to develop this? :) I think I still have too much other work that I won't spend a lot of time coding it..
One thing that makes this easier is that Open-Xchange has already implemented a CalDAV server, so they can help to avoid the biggest
mistakes. (There are a couple of reasons why they'd want to replace
design that. I think there are two parts of the project: object storage and protocol implementation. If you choose the kolab approach, the object storage part is already done :)
-- Mihai Badici[1]