.. image:: https://secure.travis-ci.org/tiddlyweb/tiddlyweb.png
    :target: http://travis-ci.org/tiddlyweb/tiddlyweb
    :alt: build status

* TiddlyWeb Home Site: http://tiddlyweb.com/
* TiddlyWeb Git Repo: http://github.com/tiddlyweb/tiddlyweb

For additional installation instructions see http://tiddlyweb.tiddlyspace.com/

Introduction
============

TiddlyWeb is an open source HTTP API for storing and accessing flexible
and composable microcontent. It is also a toolkit for tiddlers on the web.
Tiddlers are small chunks of optionally structured content
with their own URI. The concept comes from `TiddlyWiki <http://tiddlywiki.com>`_.
TiddlyWeb can provide the basis of a `server side for TiddlyWiki
<http://pypi.python.org/pypi/tiddlywebwiki>`_. TiddlyWeb provides:

* an abstract model (with default implementations) for:

  * authentication and authorization
  * entity storage 
  * entity and collection serialization

* a straightforward extension model via plugins
* an implementation of authenticated recipes and bags allowing
  access to dynamically created and filtered collections of tiddlers
* a clean and pragmatic HTTP API

The system is designed so that parts that are not optimal for a
particular installation can be easily improved or swapped out via
plugins.

While TiddlyWeb was initially designed as a TiddlyWiki server-side
it can also be used as a generic data store and platform. The platform
builds on concepts learned from TiddlyWiki, primarily the concept of
the tiddler: a small chunk of data used to build up a greater whole.

TiddlyWeb includes a command line tool called ``twanager``. Run ``twanager``
without arguments for a list of available commands.

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

The easiest way to install TiddlyWeb and all its dependencies is by
using `pip <http://pip.openplans.org/>`_ to install it from `PyPI
<http://pypi.python.org>`_:::

   pip install -U tiddlyweb

If you wish to use TiddlyWeb as a server-side for TiddlyWiki to generate
a multi-user TiddlyWiki system, you will also need `tiddlywebwiki
<http://pypi.python.org/pypi/tiddlywebwiki>`_. This too can be installed
via pip. Installing tiddlywebwiki will install tiddlyweb for you:::

   pip install -U tiddlywebwiki

Or you can install by hand, you will need the following requirements:

* Python 2.5, 2.6 or 2.7. (A Python 3 port exists but is incomplete,
  contact the authors if you are interested in the Python 3 version. Python
  2.4 may work but is neither tested nor recommended.)
* selector: http://lukearno.com/projects/selector/
* simplejson: http://undefined.org/python/#simplejson
* html5lib (for sanitizing input which may be rendered as HTML):
  http://code.google.com/p/html5lib/
* httpexceptor: http://pypi.python.org/pypi/httpexceptor

Miscellaneous
=============

See http://pypi.python.org/pypi?%3Aaction=search&term=tiddlywebplugins
for plugins that TiddlyWeb can use with itself.

See http://tiddlyspace.com/ for a shared hosting service built on
TiddlyWeb.

If you have questions or contributions on making TiddlyWeb work
for you, please post to the TiddlyWeb group at google groups:

  http://groups.google.com/group/tiddlyweb

or contact the primary author, Chris Dent <cdent@peermore.com>.

Please report bugs and issues at the github issue tracker:

  https://github.com/tiddlyweb/tiddlyweb/issues

There are a few tools that make exploring TiddlyWeb a bit easier:

* HTTP API explorer: http://tiddlyweb.tiddlyspace.com/explorer
* Python API explorer: ``twanager interact`` (once in type ``locals().keys()``)
* HTTP API quick ref: http://tiddlyweb.tiddlyspace.com/HTTP%20API
* x-doc serialization: http://tiddlyweb.tiddlyspace.com/HTTP%20API.x-doc

License
=======
TiddlyWeb is released under the BSD License and is copyright
2008-2011 UnaMesa Association.
