vstorage 0.4.0

Common API for various icalendar/vcard storages.
Documentation

vstorage

Docs | Source | Issues | Patches | Chat

Several storage implementations for iCalendar and vCard items with a common API. This crate is part of the pimsync project.

Documentation for this library can be generated with cargo doc. The documentation for the stable releases is available at crates.io.

Thanks

Special thanks to the NLnet foundation and the NGI Zero Entrust program of the European Commission, which helped secure funding for the work on pimsync and related projects such a this one.

Contributing

Testing the JMAP implementation

Use Cyrus's test server for these tests:

docker run -it \
    -p 8080:8080 -p 8143:8143 -p 8110:8110 -p 8024:8024 -p 8001:8001 \
    cyrus-testserver

This runs both a JMAP and CardDAV server:

  • JMAP endpoint: http://localhost:8080/jmap
  • CardDAV endpoint: http://localhost:8080/dav/addressbooks
  • CalDAV endpoint: http://localhost:8080/dav/calendars
  • Test credentials: username user1, no password.

Run tests via

cargo test --features jmap_test --  jmap_tests::

Manually interact with the test server via:

# Check JMAP session
curl -u user1: -H "Content-Type: application/json" \
  -X GET http://localhost:8080/jmap/.well-known/jmap

# List CardDAV collections
curl -u user1: -X PROPFIND \
  -H "Content-Type: text/xml" \
  -H "Depth: 1" \
  http://localhost:8080/dav/addressbooks/

Or use davcli for the latter.

Licence

Copyright 2023-2024 Hugo Osvaldo Barrera
Licensed under the EUPL-1.2
SPDX-License-Identifier: EUPL-1.2