
TiddlyWeb Home Site: http://tiddlyweb.peermore.com/
See also: http://tiddlywiki.org/wiki/TiddlyWeb

TiddlyWeb, aka mo'ass, is a RESTful data store which forms the core
of a reference implementation of an ideal server side implementation
for TiddlyWiki. It attempts to provide a tested, documented, and clear
implementation of several facets that make up a good server side:

* transparent system and code suitable for porting to other
  languages (where use specific optimzations will hopefully occur)
* an abstract model for authentication and authorization
* an implementation of authenticated recipes and bags allowing
  the conrolled access to dynamically created collections of
  tiddlers
* clean HTTP API based on REST principles
* test driven description and development

The initial implementation is not designed to be highly performant
nor especially scalable. The system is designed so that parts
that are not optimal for a particular installation can be easily
improved or swapped out.

Throughout the process of development TiddlyWeb has evolved from
being specifically a TiddlyWiki server-side to a generic data store
that builds on concepts learned from TiddlyWiki, primarily the concept
of the tiddler: a small chunk of data used to build up a greater whole.

REQUIREMENTS:

* Python 2.4 or 2.5 (or beyond. Python 3 has not been tested.)
* 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/

If wish to use TiddlyWeb as a server-side for TiddlyWiki to generate
a multi-user TiddlyWiki system, you will also need:

* tiddlywebwiki (a Python package containing the necessary TiddlyWeb
  and TiddlyWiki plugins):
  <location to be defined>

If you have downloaded a tarball of TiddlyWeb and you have Python's
setuptools, running the following command will automatically install
TiddlyWeb and its requirements to the usual locations (you most likely
will need to be an administrative user for this to work):

   python setup.py install

If you are using TiddlyWeb from source checked out from the
http://github.com/tiddlyweb/tiddlyweb repository, you can install
the necessary requirements by hand:

Selector and simplejson can be installed with easy_install, which
either comes with your python distribution and should be on your path,
or is part of setuptools which you can install. See

  http://peak.telecommunity.com/DevCenter/EasyInstall

and

  http://peak.telecommunity.com/DevCenter/setuptools

for more information on easy_install and setuptools if you are not
familiar with them.

For more information on what to do with TiddlyWeb see:

docs/TESTING:  Information about the tests located in the test directory.
docs/COOKBOOK: A guide to how to setup a TiddlyWeb server with your own
               content. *EXPIRED*
index.cgi:     A sample of how to make TiddlyWeb run as a CGI with a web server
               such as Apache.
apache.py:     A sample of how to make TiddlyWeb run under mod_wsgi or
               mod_python and Apache.

See http://tiddlyweb.peermore.com/ for a TiddlyWiki generated by TiddlyWeb
and TiddlyWebWiki, a TiddlyWeb plugin that provides TidldyWiki server-side
functionality. That wiki contains the TiddlyWeb documentation.  You can also
leave comments there to help improve the documentation.

See http://github.com/tiddlyweb/tiddlyweb-plugins
for some samples of plugins that TiddlyWeb can use with itself.

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

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

or contact Chris Dent <cdent@peermore.com>.
