Skip to main content

EteSync - Secure Data Sync

This is a python client library for EteSync

GitHub tag PyPI Build Status Chat on freenode

This module provides a python API to interact with an EteSync server. It currently implements AddressBook and Calendar access, and supports two-way sync (both push and pull) to the server. It doesn't currently implement pushing raw journal entries which are needed for people implementing new EteSync journal types which will be implemented soon.

To install, please run:

pip install etesync

The module works and the API is tested (see tests/), however there still may be some oddities, so please report if you encounter any.

There is one Authenticator endpoint, and one endpoint for the rest of the API interactions.

The way it works is that you run "sync", which syncs local cache with server. Afterwards you can either access the journal directly, or if you prefer, you can access a collection, for example a Calendar, and interact with the entries themselves, which are already in sync with the journal.

Check out example.py for a basic usage example, or the tests for a more complete example.

While this is stable enough for usage, it still may be subject to change, so please watch out for the changelog when updating version. Docs are currently missing but are planned.

Running the example script

You may also need to make sure you have the OpenSSL development package installed (e.g. openssl-dev).

Check out this repository:

git clone git@github.com:etesync/pyetesync.git
cd pyetesync

Setup the environment:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.in/requirements-dev.txt

Run example.py to export your data:

python3 example.py <email> <auth password> <encryption password> https://api.etesync.com

You may need to surround your passwords in quotes and you may need to escape special characters with a \. Please note, that depending on your setup, passing your passwords as command line parameters may not be completely secure, so it would be better if you manually edit the file.

And all of your data will be copied to a local database located at ~/.etesync/data.db.

Running the tests

Some to the tests are unit tests, but some are integration tests who need an actual EteSync service with a few user names set up in order for them to work.

You'd need to run your local server: https://github.com/etesync/server-skeleton/

And then add two users:

  • test@localhost
  • test2@localhost

Password for both: SomePassword

That's it.

Release files for etesync 0.12.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for etesync 0.12.1
File Size Uploaded
etesync-0.12.1.tar.gz 20.4 kB Details

Release files / etesync-0.12.1.tar.gz

Download URL etesync-0.12.1.tar.gz
Size 20.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f20f7e9922ee789c4b71379676ebfe656b675913fe524f2ee722e1b9ef4e5197
BLAKE2b-256 checksum
How to use checksums
0be14e096e782818af4a7d5210f3072d1206b4da3a50d18f30b8b6811118a497
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

Release history Release notifications | RSS feed

This release

0.12.1 This release

1 release file

0.12.0

1 release file

0.11.1

1 release file

0.11.0

1 release file

0.10.0

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page