Skip to content

b3j0f/sync

Repository files navigation

Description

This library is dedicated to ease synchronization of data between resources (database, etc.) at a high level of abstraction.

License Development Status Latest release Supported Python versions Supported Python implementations Download format Build status Code test coverage Downloads Documentation Status Code Health

Links

Installation

pip install b3j0f.sync

Features

The global architecture is composed of three classes:

- Record: pivot data to persist in heterogeneous stores. Keep a transparent reference to stores in order to ensure easy synchronization and consistency among stores.
- Store: Record such as a set of data with CRUD operations. CRUD operations are delegated to specific Accessors. To specialize to a database, CMDB, project management system, etc. depending on your needs.
- Accessor: Record and implementation of record CRUD operations in a store.

Two optional classes are provided in order to ease the use of previous ones:

- Field: used to specify data content in records.
- StoreRegistry: Record which permits to do CRUD and synchronization operations over several stores.

If you want to use this library to your own needs, you have to extend abstract classes with implementation of 6 CRUD methods for the Accessor.

The system does not use semantical mechanisms, therefore, the system is in a best effort mode instead to be exhaustive.

And you might override hash methods of records.

Examples

Perspectives

  • wait feedbacks during 6 months before passing it to a stable version.
  • Cython implementation.

Donation

I'm grateful for gifts, but don't have a specific funding goal.

About

Data synchronizing system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages