Go to file
Simeon Warner 30ab56b14a More tidy
2020-12-10 09:16:10 -05:00
docs Add explicit --capabilitylist argument 2017-08-30 14:09:29 -04:00
examples Use simplified imports 2013-07-04 23:25:29 -04:00
resync More tidy 2020-12-10 09:16:10 -05:00
tests Fix errors with 3.6, tidy 2020-12-10 07:24:00 -05:00
.gitignore Fix errors with 3.6, tidy 2020-12-10 07:24:00 -05:00
.travis.yml More tidy 2020-12-10 09:16:10 -05:00
CHANGES.md Fix errors with 3.6, tidy 2020-12-10 07:24:00 -05:00
CONTRIBUTING.md Tidy 2018-10-23 10:46:41 -04:00
LICENSE.txt Add Apache License 2.0 2013-05-08 16:37:48 -04:00
MANIFEST.in created init skeleton 2012-12-05 15:43:58 -05:00
README Fix errors with 3.6, tidy 2020-12-10 07:24:00 -05:00
README.rst See what .rst does on github... 2013-05-09 11:11:22 -04:00
resync-explorer.py More tidy 2020-12-10 09:16:10 -05:00
resync.py More tidy 2020-12-10 09:16:10 -05:00
setup.py Fix errors with 3.6, tidy 2020-12-10 07:24:00 -05:00
TODO.md Figure 4 was fixed in 1.1: http://www.openarchives.org/rs/1.1/resourcesync#fig_framework_structure 2017-02-22 10:54:40 -05:00
tox.ini Fix errors with 3.6, tidy 2020-12-10 07:24:00 -05:00

======
resync
======

.. image:: https://travis-ci.org/resync/resync.png?branch=master
  :target: https://travis-ci.org/resync/resync
  :alt: Build status

.. image:: https://coveralls.io/repos/github/resync/resync/badge.svg?branch=master
  :target: https://coveralls.io/github/resync/resync
  :alt: Test coverage

**resync** is a ResourceSync client and library in python. `ResourceSync 
<http://www.openarchives.org/rs/>`_ is a synchronization framework for 
the web consisting of various capabilities that allow third party 
systems to remain synchronized with a server's evolving resources. 
The capabilities can be combined in a modular manner to meet local 
or community requirements.

Client usage
------------

Typical client usage to synchronize from a source at 
``http://source.example.com/`` to a set of local files would be::

    resync.py http://source.example.com/

which will create or update a local directory ``./source.example.com``. 
Alternatively, the destination directory may be specified explicitly::

    resync.py http://source.example.com/ /tmp/my_copy

Option details and a number of different modes are described with::

    resync.py -h

Library usage
-------------

Typical library use in a source (create and output a Resource List)::

    from resync import Resource,ResourceList

    rl = ResourceList()
    rl.add( Resource('http://example.com/res1', lastmod='2013-01-01') )
    rl.add( Resource('http://example.com/res2', lastmod='2013-01-02') )
    print rl.as_xml()

Typical library use in a destination (get and examine a Capability List):: 

    from resync import CapabilityList

    # Read Capability List and show supported capabilities
    cl = CapabilityList()
    cl.read("https://raw.github.com/resync/resync/1.0/resync/test/testdata/examples_from_spec/resourcesync_ex_2_6.xml")
    for resource in cl:
        print "supports %s (at %s)" % (resource.capability,resource.uri)

Installation
------------

The client and library are designed to work with Python 2.7, 3.5, 3.6 and 3.7.

**Automatic installation**::

    pip install resync

rsync is listed in `PyPI
<http://pypi.python.org/pypi/resync>`_ and can be installed with 
``pip`` or ``easy_install``. 

**Manual installation from github**::

    cd /tmp
    git clone git://github.com/resync/resync.git
    cd resync/
    python setup.py build
    sudo python setup.py install

This will install the library code in the appropriate place within 
your python setup, and the client ``resync.py`` in an appropriate system
path (perhaps ``/usr/local/bin`` or ``/usr/bin`` depending on your system).

The source code is maintained on `Github
<https://github.com/resync/resync>`_
and there may be branches/versions available there that are not 
yet packaged for PyPI.

See also
--------

`ResourceSync simulator
<http://github.com/resync/simulator>`_

Contributors
------------

Thanks to:
`Bernhard Haslhofer
<https://github.com/behas>`_,
`Robert Sanderson
<https://github.com/azaroth42>`_,
and `other contributors
<https://github.com/resync/resync/graphs/contributors>`_.

See `CONTRIBUTING.md
<https://github.com/resync/resync/blob/master/CONTRIBUTING.md>`_
for guidelines for contributing.

Copyright and License
---------------------

Copyright 2012--2020 Simeon Warner and contributors

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
   
See LICENSE.txt