# Twisted Glossary

`Adapter`
  An object which wraps another object to conform to a particular Interface, when some code requests the interface from an object. See `twisted.python.components`.
`Application`
  A `twisted.internet.app.Application`. There are HOWTOs on creating and manipulating them as a system-administrator, as well as using them in your code.
`Authorizer`
  An object responsible for managing Identities. See `twisted.cred.authorizer`.
`Banana`
  The low-level data marshalling layer of Twisted Spread. See `twisted.spread.banana`.
`Broker`
  A `twisted.spread.pb.Broker`, the object request broker for Twisted Spread.
COIL
  COnfiguration ILlumination. It is a (stagnant and incomplete) end-user interface for configuring Twisted applications. See `twisted.coil`.
component
  A special kind of (persistent) `Adapter` that works with a `twisted.python.components.Componentized`.
`Componentized`
  An object that can hold a number of persistent `Adapters`, which we call components.
`conch`
  Twisted's SSH implementation.
Connector
  Object used to interface between client connections and protocols, usually used with a `twisted.internet.protocol.ClientFactory` to give you control over how a client connection reconnects. See `twisted.internet.interfaces.IConnector` and Writing Clients.
Consumer
  An object that consumes data from a Producer. See `twisted.internet.interfaces.IConsumer`.
Cred
  Twisted's authentication API, `twisted.cred`. See Introduction to Twisted Cred and Twisted Cred usage.
CVSToys
  A nifty set of tools for CVS, available at http://twistedmatrix.com/users/acapnotic/wares/code/CVSToys/.
`Deferred`
  A instance of `twisted.internet.defer.Deferred`, an abstraction for handling chains of callbacks and error handlers (errbacks). See the Deferring Execution HOWTO.
Enterprise
  Twisted's RDBMS support. It contains `twisted.enterprise.adbapi` for asynchronous access to any standard DB-API 2.0 module, and `twisted.enterprise.row`, a Relational Object Wrapper. See Introduction to Twisted Enterprise and Twisted Enterprise Row Objects for more details.
errback
  A callback attached to a Deferred with `.addErrback` to handle errors.
`Factory`
  In general, an object that constructs other objects. In Twisted, a Factory usually refers to a `twisted.internet.protocol.Factory`, which constructs Protocol instances for incoming or outgoing connections. See Writing Servers and Writing Clients.
`Failure`
  Basically, an asynchronous exception that contains traceback information; these are used for passing errors through asynchronous callbacks.
`Identity`
  A Cred object that represents a single user with a username and a password of some sort.
im, t-im
  Abbreviation of (Twisted) Instance Messenger.
Instance Messenger
  Instance Messenger is a multi-protocol chat program that comes with Twisted. It can communicate via TOC with the AOL servers, via IRC, as well as via PB with Twisted Words. See `twisted.im`.
`Interface`
  A class that defines and documents methods that a class conforming to that interface needs to have. A collection of core twisted.internet interfaces can be found in `twisted.internet.interfaces`.
Jelly
  The serialization layer for Twisted Spread, although it can be used seperately from Twisted Spread as well. It is similar in purpose to Python's standard `pickle` module, but is more network-friendly, and depends on a separate marshaller (Banana, in most cases). See `twisted.spread.jelly`.
Lore
  `twisted.lore` is Twisted's documentation system. The source format is a subset of XHTML, and output formats include HTML and LaTeX. See generatelore(1) and the Twisted Documentation Standard.
Manhole
  A debugging/administration interface to a Twisted application. See Debugging with Manhole.
Marmalade
  An XML-based serialisation module. See `twisted.persisted.marmalade`.
Microdom
  A partial DOM implementation using SUX. It is simple and pythonic, rather than strictly standards-compliant. See `twisted.web.microdom`.
Names
  Twisted's DNS server, found in `twisted.names`.
PB
  Abbreviation of Perspective Broker.
`Perspective`
  A Cred object; an Identity's perspective (or view) onto a Service. There may be many Perspectives associated with an Identity, and an Identity may have multiple Perspectives onto the same Service.
Perspective Broker
  The high-level object layer of Twisted Spread, implementing semantics for method calling and object copying, caching, and referencing. See `twisted.spread.pb`.
Producer
  An object that generates data a chunk at a time, usually to be processed by a Consumer. See `twisted.internet.interfaces.IProducer`.
`Protocol`
  In general each network connection has its own Protocol instance to manage connection-specific state. There is a collection of standard protocol implementations in `twisted.protocols`. See also Writing Servers and Writing Clients.
PSU
  There is no PSU.
Reactor
  The core event-loop of a Twisted application. See Reactor Basics.
Reality
  See Twisted Reality
`Resource`
  A `twisted.web.resource.Resource`, which are served by Twisted Web. Resources can be as simple as a static file on disk, or they can have dynamically generated content.
ROW
  Relational Object Wrapper, an object-oriented interface to a relational database. See Twisted Enterprise Row Objects.
Service
  A `twisted.cred.service.Service`. See Twisted Cred usage for a description of how they relate to Applications, Perspectives and Identities.
Spread
  Twisted Spread is Twisted's remote-object suite. It consists of three layers: Perspective Broker, Jelly and Banana. See Writing Applications with Perspective Broker.
Sturdy
  A persistent reference manager for PB. See `twisted.spread.sturdy`.
SUX
  Small Uncomplicated XML, Twisted's simple XML parser written in pure Python. See `twisted.protocols.sux`.
TAP
  Twisted Application Pickle, or simply just a Twisted APplication. A serialised application that created with `mktap` and runnable by `twistd`. See Using the Utilities.
Tendril
  A bridge between Twisted Words and IRC. See `twisted.words.tendril`.
Trial
  `twisted.trial`, Twisted's unit-testing framework, modelled after pyunit.
Twisted Matrix Laboratories
  The team behind Twisted. http://twistedmatrix.com/.
Twisted Reality
  In days of old, the Twisted Reality multiplayer text-based interactive-fiction system was the main focus of Twisted Matrix Labs; Twisted, the general networking framework, grew out of Reality's need for better network functionality. Twisted Reality has since been broken off into a separate project.
`usage`
  The `twisted.python.usage` module, a replacement for the standard `getopt` module for parsing command-lines which is much easier to work with. See Parsing command-lines.
Words
  Twisted Words is a multi-protocol chat server that uses the Perspective Broker protocol as its native communication style. See `twisted.words`.
Woven
  Web Object Visualization Environment. A web templating system based on XML and the Model-View-Controller design pattern. See Developing Componentized Applications using Woven.
Zoot
  Twisted's Gnutella implementation (currently very incomplete). See `twisted.zoot`.