# Twisted Documentation

Twisted currently needs a lot of documentation. This file is an index of all the things that we hope to have in it eventually.

XXX: Something missing from this document is a sample application which will actually require *ALL* of twisted at once. Some brainstorming on this would be helpful.

- Introduction
  - Overview
  - Feature Breakdown
    - Overview of Twisted Web
    - Overview of Twisted Spread
    - Overview of Twisted Enterprise
    - Overview of Twisted Internet
    - Tying them all together with Passport & Coil
    - Discussion of examples in Forum, Words, Mail
    - Twisted Python and other low-level frequently re-used code
- The Basics
  - Getting your Server Set Up
  - Platform support: UNIX, Windows
- High-Level Twisted
  - Asynchronous Programming
    - Abstract Concepts
    - Working with twisted.python.defer
    - Examples of Systems Using Deferreds
  - Common Application Elements: Using Passport
    - Simulation model of services
    - Descriptions of distinctions between similar concepts e.g. "plugin" and "service", "perspective" and "identity"
  - Web Applications
    - Resources, CGIs, Static Content and Linking in Twisted
    - Introducing Web Widgets
    - Gadgets, Widgets, Pages: introducing a common look and feel
    - Database queries with Widgets (maybe more space should be devoted to enterprise?)
    - Authentication on the Web
  - Interactive Applications
    - Connecting an instance direct to the 'net: simple examples with PB
    - Interchanging State: getting inside Jelly's head
    - Interfacing PB with a client-side toolkit
- Low-Level Twisted
  - The Twisted mainloop abstraction
  - defer, delay, task, and other methods for delaying evaluation
  - threadtask and the Twisted threading model (itamar?)
  - Protocols
    - Writing a server
    - Writing a client
  - Toolkits: Interfacing Twisted with your toolkit of choice
  - Transports
    - Wrapping a new kind of select()able resource
    - Wrapping a new kind of crypto algorithm
  - Extending Twisted: keep it simple for the "end programmer"
- Administration and Deployment concerns (Note: Coil isn't actually done yet, but it may be useful to write this section based on what *should* be happening, to get requirements for it...)
  - Twisted Coil & Plugins
  - Configuring a new service using Coil
  - Writing your service to be a Plugin
  - Writing your service to be configurable using Coil
  - Creating database interfaces, connecting things to them, etc...

Last modified: Tue Mar 12 21:13:38 EST 2002