Someone on IRC asked if we'd support connecting to a Xandikos unix socket directly.
I'm not 100% decided on whether this feature is desirable or not. I don't want it to add too much complexity.
This library seems to do the relevant work for this: https://crates.io/crates/hyperlocal
This in now in scope. See: https://whynothugo.nl/journal/2024/08/19/unix-domain-socket-support-for-vdirsyncer/
With regards to the configuration syntax, it would remain unchanged and the
Url
would simply be of the style:unix:///path/to/socket
With regards to the configuration implementation, the
vdirsyncer::config::CalDav::into_storage
function currently returnsCalDavStorage<HttpsConnector<HttpConnector>>
. It would have to returnArc<dyn Storage<I>>
instead.
libdav
is already generic on theConnect
type, so requires no additional support.
Given that the URL's path is the path to the socket, the HTTP path to the caldav server needs to be provided separately. The easiest approach is to use a URL fragment, which has no other use in this context. E.g.:
unix:///path/to/socket#/path/to/caldav/server