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 for allowing abstract objects to be synchronized 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-r35.tar.gz (193.8 kB view details)

Uploaded Source

Built Distributions

pysyncml-0.1.dev_r35-py2.7.egg (183.1 kB view details)

Uploaded Source

pysyncml-0.1.dev_r35-py2.6.egg (183.9 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for pysyncml-0.1.dev-r35.tar.gz
Algorithm Hash digest
SHA256 e0bff92a248ef9beb0aff56c03184138d041e0821103d7e57562ee2d6e548cc9
MD5 217a93c19cbc2eab428b9319295d800d
BLAKE2b-256 4cf1b0b10dd01952252fd705a01eb8b2c5ec491098a9d3696b875ca0be2f37a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysyncml-0.1.dev_r35-py2.7.egg
Algorithm Hash digest
SHA256 336cf22535a5e2fcfec90c8baa0d8fdcbd860294770e0528e8e73b4f2284974c
MD5 2b08f279aec5efdc8d2e0a2aa38242a7
BLAKE2b-256 44c1a90fcfde4bded745dcf0ce1216c3c090e8c6db4e5d1cfc9e53fe29015714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysyncml-0.1.dev_r35-py2.6.egg
Algorithm Hash digest
SHA256 0097d447f6ad4b1920139fded1bdad095edb7f7504c1cf54b6c7393e1bf081c0
MD5 20c1effdfcc9053e00985d034c79e5f0
BLAKE2b-256 be2460426937e1fa7d01b8d648cd4b69fd6956128b78a5048c00196869e64650

See more details on using hashes here.

Supported by

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