Overview
========

Zanshin is a library for collaboration over HTTP, WebDAV and CalDAV. It was originally conceived by Lisa Dusseault, and is currently being developed and maintained by Grant Baillie. Its primary client is the Chandler `Sharing Project`_.

Goals
=====

   * **High-level** API: Zanshin works at the level of resources and properties of resources, rather than HTTP requests and responses. This, coupled with careful thought about what data to persist, will hopefully lead to an easier-to-use and better performing API than what you get by making the obvious 1:1 mapping between Python method calls and HTTP requests.
   * **Asynchronicity** via the `Twisted networking framework`_. For an excellent discussion of Chandler's use of Twisted, see TwistedHome_. 

Documentation
=============

See `Lisa's original design notes`_.

There are docstrings ranging from sparse to thorough in code itself. You
can generate epydoc strings by running::

    python setup.py doc

inside the project directory. (The ``zanshin.webdav`` module contains a
fairly detailed doctest).

Installation
============

The project uses setuptools_, and is therefore installable via the
``setup.py`` script, or by using the standard `easy_install`_ script.

Source code
===========

The (read-only) subversion trunk is: `http://svn.osafoundation.org/zanshin/trunk`_

.. _http://svn.osafoundation.org/zanshin/trunk: http://svn.osafoundation.org/zanshin/trunk#egg=zanshin-dev

Er, What Does "Zanshin" Mean, Anyway?
=====================================
Zanshin means both readiness and follow-through; it's the attitude of being
ready for what happens and complete in how you react to it. Lisa picked
"zanshin" to sound cool (Japanese!) and to convey the first Goal above.

.. _Sharing Project: http://chandlerproject.org/Projects/SharingProject
.. _Twisted networking framework: http://twistedmatrix.com
.. _TwistedHome: http://chandlerproject.org/Projects/TwistedHome
.. _Lisa's original design notes: http://chandlerproject.org/Journal/LisaDusseault20050315
.. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools
.. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall
