~whynothugo/pimsync

Reimplementation and successor of vdirsyncer
readme: not for packagers
Link to online man pages in the README
Add a minimal website homepage

refs

main
browse  log 
v2.0.0-beta1
release notes 

clone

read-only
https://git.sr.ht/~whynothugo/pimsync
read/write
git@git.sr.ht:~whynothugo/pimsync

You can also use your local clone with git send-email.

#pimsync

Source | Issues | Patches | Chat

This is the repository for pimsync, the rewrite and successor of vdirsyncer.

#Requirements

Compiling pimsync requires:

  • make
  • Rust and Cargo
  • libsqlite3 (development package)
  • scdoc (for compiling manual pages)

Running pimsync requires:

  • libc
  • libsqlite3 (runtime package)

#Compilation

Use make build to compile pimsync. The build process uses Cargo to produce a binary and scdoc to compile documentation.

The compiled binary is placed in ./target/release/pimsync. It can be executed directly, or copied into your $PATH.

#Installation

After compiling, use make install to install to /usr/local/.

#Usage

End user documentation is provided as man pages. Please see man pimsync and man pimsync.conf as starting points.

Manual pages are built when running make build. They can also be built independently using make man. These same man pages can be rendered as HTML pages by using make html.

The HTML version of the manual pages is also available online at https://pimsync.whynothugo.nl/.

#Packaging

When building from tarballs generated by git-archive or when building from a git checkout, the current version will be encoded into the final binary. When distributing binaries of pimsync, please ensure that pimutils version shows the correct version.

The embedded version can be overridden by defining the PIMSYNC_VERSION variable at compile time. If you are applying distribution-specific patches, please append the distribution name to the version. E.g.: v1.0.0-alpine.

#Developer documentation

The underlying synchronisation implementation is implemented in the vstorage library, which is part of this repository. If you want to make a different user interface based on pimsync, then you'll want to use this library. Pimsync itself merely parses a configuration file and executes the algorithms implemented in vstorage.

The following libraries were also developed as part of this project:

Documentation for the vstorage library can be built locally with cargo doc. The documentation also reflects the design and further technical details on pimsync's algorithm.

The documentation for the latest commits made to this repository are published at:

#Contributing

See [HACKING.md].

#Thanks

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

#Licence

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