‹ back home

Status update 2025-03

2025-03-31 #pimsync #status-update

March has been a busy month, wrapping up a lot of ongoing work on pimsync.

I’ve implemented a full documentation website. It provides guides on setting up pimsync, common scenarios, the security model as well as HTML renders of the manual pages. The man pages continue to be the canonical reference documentation, whereas the website includes more usage guides and explanations. It also includes instructions for building and hints for packages. If you’re interested in packaging pimsync for your distributions, please check out the packaging instructions.

I tagged a v0.4.1 release of pimsync. The changelog is also available in the documentation website.

If you find some gap in the documentation, or some detail is not clear, please reach out. At this stage, feedback is needed in order to continue refining it.

The vdir storage format

The vdir specification is now published on a page of its own. Previously this format was documented in vdirsyncer’s documentation, but the format itself was designed so that different tools can operate on the same set of files avoiding conflicts or races as much as possible.

The vdir storage format is a simply convention on how to store calendar and address book data locally, as stand-alone files. It is easy to implement and allows interoperability across various tools. It also puts people in full control of their data, since all of it is stored in standardised formats easily accessible in the local filesystem.

Publishing the specification as a stand-alone document should better reflect it’s intended purpose: being a specification which other tools can follow in order to improve interoperability.

Tools such as pimsync, khal, todoman, tdx, ab-bday, ab-tidy, vdirsyncer, and others already rely on this format, and I hope that more tools will join in future.

Repairing items

pimsync implements a repair command, which repairs invalid items in storages. Typically, these are items with a missing UID or with duplicate UIDs.

If additional common scenarios of invalid items surface, I’ll extend this command to handle them as well (assuming that there is a clear / unambiguous path to fixing them).

content-line-writer

I’ve published a new release of the content_line_writer crate. This library implements escaping of content lines for iCalendar and vCard files, and is usable in applications that need to generate either of these and don’t want to deal with the nuances of folding lines.

It’s not terribly interesting yet, but it’s one of the building block to start working on JSCalendar and JMAP support.

Have comments or want to discuss this topic?
Send an email to my public inbox: ~whynothugo/public-inbox@lists.sr.ht.
Or feel free to reply privately by email: hugo@whynothugo.nl.

— § —