Skip to main content

A pure-python implementation of the SyncML adapter framework and protocol.

Project description

Welcome to pysyncml

Welcome to the pysyncml library, a pure-python implementation of the SyncML adapter framework and protocol. SyncML is a protocol to synchronize opaque objects between multiple clients and a server.

Goals

The pysyncml project has the following goals, some of them diverge critically from other SyncML implementations and are the reasons for creating a new package instead of building on other existing implementations:

  • Can be installed and used with a single “pip install pysyncml” (or easy_install).

  • Is python 2.6+ and 3+ compatible.

  • Implements a sufficiently large subset of the SyncML 1.2.2 (a.k.a. the OMA Data Synchronization specification) as to be interoperable with other implementations without necessarily being “conformant”.

  • Can be easily integrated into sqlalchemy based projects to store data in the application’s database instead of separated out (so that integrated database triggers and cascading can be applied).

  • Can be extended in order to make properly crafted clients able to operate in “distributed” mode - this means that in the absence of a network, SyncML client peers are able to synchronize with each other in the anticipation that the central server may or may not eventually become available again.

  • Differentiates as little as possible between “client” and “server” modes to enable the previous goal.

  • Makes basic synchronization easy and complicated synchronization possible by providing standard implementations for commonly used approaches, while allowing these components to be overriden or extended.

  • Provides basic command line tools for commonly synchronized data types.

  • Provides a framework of server-push notifications which are transport agnostic.

  • Auto-discovery of SyncML server URI locations; i.e. finding the “right” paths to bind object types is done automatically instead of needing error-prone user configuration.

Limitations

It is the goal of the project to get a minimally functional library going in the shortest possible timeframe. To that end, the following features of SyncML will NOT be implemented until a later phase, even if this means that the library does not provide a conformant implementation:

  • NOT supported: filtering of searches or synchronization targets.

  • NOT supported: data split over multiple messages.

  • NOT supported: soft-deletes.

  • NOT supported: memory constraint management.

  • NOT supported: suspend, resume and busy signaling.

  • NOT supported: MD5 authentication scheme.

  • NOT supported: per-database-layer authorization.

Installation

Installation of pysyncml is near-trivial with PIP:

$ pip install pysyncml

or, using easy_install:

$ easy_install pysyncml

Documentation

For downloaded packages, please see the generated documents in the “doc” directory, otherwise you can find links to the latest how-to and API reference documentation at pysyncml.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysyncml-0.1.dev-r41.tar.gz (206.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pysyncml-0.1.dev_r41-py2.7.egg (199.6 kB view details)

Uploaded Egg

pysyncml-0.1.dev_r41-py2.6.egg (200.7 kB view details)

Uploaded Egg

File details

Details for the file pysyncml-0.1.dev-r41.tar.gz.

File metadata

  • Download URL: pysyncml-0.1.dev-r41.tar.gz
  • Upload date:
  • Size: 206.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pysyncml-0.1.dev-r41.tar.gz
Algorithm Hash digest
SHA256 23b720050c8234226da14b06956da48a035417db6564f936dd1eb8bcc51d1092
MD5 7d5ff6a57e5a52984deb19377b24ebc5
BLAKE2b-256 efaf0b630b9d019ae5e18044cc2a15f1825d301cf3639bb6a5f60c78dd232249

See more details on using hashes here.

File details

Details for the file pysyncml-0.1.dev_r41-py2.7.egg.

File metadata

File hashes

Hashes for pysyncml-0.1.dev_r41-py2.7.egg
Algorithm Hash digest
SHA256 7e606bae8c0c76d2deafa245dbe91b957cbf9a76b64418293e29940b622a5897
MD5 e0f1874b6de6a7e4843b693c139a7dc5
BLAKE2b-256 0a34661d58a615f266e055eeca96f74883cea53b98b5939a2b45c5d8a05d6e1d

See more details on using hashes here.

File details

Details for the file pysyncml-0.1.dev_r41-py2.6.egg.

File metadata

File hashes

Hashes for pysyncml-0.1.dev_r41-py2.6.egg
Algorithm Hash digest
SHA256 ebed60cdb86eaf5334b8d34a676849be425c20b1699a656d41862ba8d191736d
MD5 ab31b910155babce4faad6953179c6ee
BLAKE2b-256 074fdaeee7e5f58394f57e5fa4a533aff044d10d7aa5382d9c4850d79213cd09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page