Skip to content

miseenplace/vdirsyncer-rs

Repository files navigation

vdirsyncer

Source | Issues | Patches | Chat

This repository contains work-in-progress rewrite of vdirsyncer in Rust, as well as crates with associated functionality.

For the original Python implementation see https://github.com/pimutils/vdirsyncer.

Hacking

Design considerations

These libraries assume that all etags are valid UTF-8 strings. Any response that does not match this expectation is considered invalid. As of HTTP 1.1, all header values are restricted to visible characters in the ASCII range (which satisfy the expectation).

Initial testing indicates that this is not a problem with any CalDav or CardDav servers.

Integration tests

A small integration tests helper program is available as part of this project. It runs a sequence of tests on a real CalDav server. See live_tests/README.md for full details.

Other test servers

Radicale:

docker run --rm --publish 8001:8001 whynothugo/vdirsyncer-devkit-radicale

Baikal:

docker run --rm --publish 8002:80 whynothugo/vdirsyncer-devkit-baikal
  • Cyrus IMAP: Hosted test account by Fastmail.com.
  • Nextcloud: Hosted test account.

Sending patches

Just once, configure the patches list for this repo:

git config sendemail.to '~whynothugo/[email protected]'

Make changes. Run tests. Commit. Then send patches:

git send-email COMMIT_RANGE

Credits

Special thanks to the NLnet foundation that helped receive financial support from the NGI Assure program of the European Commission in early 2023.

Licence

Copyright 2023 Hugo Osvaldo Barrera
Licensed under the EUPL, Version 1.2 only

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages