# Twisted Glossary

Absolute submodel paths
  The full path to a Model object, starting at the root. For example, `/foo/bar/baz`
adaptee
  An object that has been adapted, also called original. See Adapter.
`Adapter`
  An object whose sole purpose is to implement an Interface for another object. See Interfaces and Adapters.
`Application`
  A `twisted.application.service.Application`. There are HOWTOs on creating and manipulating them as a system-administrator, as well as using them in your code.
`Authorizer`
  (Deprecated; this is part old cred) An object responsible for managing Identities. See `twisted.cred.authorizer`.
Avatar
  (from Twisted Cred) business logic for specific user. For example, in PB these are perspectives, in pop3 these are mailboxes, and so on.
`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.
cache
  A way to store data in readily accessible place for later reuse. Caching data is often done because the data is expensive to produce or access. Caching data risks being stale, or out of sync with the original data.
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`. See also Interfaces and Adapters.
`Componentized`
  A Componentized object is a collection of information, separated into domain-specific or role-specific instances, that all stick together and refer to each other. Each object is an `Adapter`, which, in the context of Componentized, we call components. See also Interfaces and Adapters.
`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`.
controller
  (In Woven) an object which accepts input from the user in the form of mouse clicks, keypresses, and web form submissions, and updates the Model component.
Cred
  Twisted's authentication API, `twisted.cred`. See Introduction to Twisted Cred and Twisted Cred usage.
credentials
  A username/password, public key, or some other information used for authentication.
credential checker
  Where authentication actually happens. See `ICredentialChecker`.
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`
  (Deprecated). 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`. See also Interfaces and Adapters.
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 lore(1) and the Twisted Documentation Standard.
Manhole
  A debugging/administration interface to a Twisted application.
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`.
model
  An object that contains data and business logic for manipulating this data.
model stack
  A stack of Model instances which keeps track of the Model that is currently in scope during the Woven Page rendering process.
Names
  Twisted's DNS server, found in `twisted.names`.
overrides
  (In Woven) A way to add data to cached data. Overrides are not replaced when base data is updated.
pattern
  A node in a Woven HTML template whose sole purpose is to be copied and filled with data by a View component.
relative submodel path
  A partial path to a Model object, relative to the top of the Model stack.
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`.
Portal
  Glues credential checkers and realms together.
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
realm
  (in Twisted Cred) stores avatars and perhaps general business logic. See `IRealm`.
`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.application.service.Service`. See Application howto for a description of how they relate to Applications.
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`.
submodel paths
  A path to a Model object. A way of referring to a piece of data in a Woven template that allows Python to locate the data in a tree of python objects.
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. See also Twisted's Test Standard.
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.
`wcfactory`
  A factory method for producing Controller objects when a `controller=` directive is encountered in a Woven Template.
`wchild`
  In Woven, a factory method for producing objects which represent URL segments below the current object.
widgets
  In Woven, a `View` subclass which specializes in rendering a fragment of the DOM tree.
`wmfactory`
  A factory method for producing Model objects when a `model=` directive is encountered in a Woven Template.
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.
`wvfactory`
  A factory method for producing View objects when a `view=` directive is encoutered in a WovenTemplate.
Zoot
  Twisted's Gnutella implementation (currently very incomplete). See `twisted.zoot`.