<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Twisted from Scratch, or The Evolution of Finger</title> </head> <body> <h1>Twisted from Scratch, or The Evolution of Finger</h1> <h2>Introduction</h2> <p> Twisted is a big system. People are often daunted when they approach it. It's hard to know where to start looking. </p> <p> This guide builds a full-fledged Twisted application from the ground up, using most of the important bits of the framework. There is a lot of code, but don't be afraid. </p> <p> The application we are looking at is a <q>finger</q> service, along the lines of the familiar service traditionally provided by UNIX™ servers. We will extend this service slightly beyond the standard, in order to demonstrate some of Twisted's higher-level features. </p> <h2>Contents</h2> <p> This tutorial is split into eleven parts: </p> <ol> <li><a href="intro.xhtml">The Evolution of Finger: building a simple finger service</a></li> <li><a href="protocol.xhtml">The Evolution of Finger: adding features to the finger service</a></li> <li><a href="style.xhtml">The Evolution of Finger: cleaning up the finger code</a></li> <li><a href="components.xhtml">The Evolution of Finger: moving to a component based architecture</a></li> <li><a href="backends.xhtml">The Evolution of Finger: pluggable backends</a></li> <li><a href="web.xhtml">The Evolution of Finger: a clean web frontend</a></li> <li><a href="pb.xhtml">The Evolution of Finger: Twisted client support using Perspective Broker</a></li> <li><a href="factory.xhtml">The Evolution of Finger: using a single factory for multiple protocols</a></li> <li><a href="client.xhtml">The Evolution of Finger: a Twisted finger client</a></li> <li><a href="library.xhtml">The Evolution of Finger: making a finger library</a></li> <li><a href="configuration.xhtml">The Evolution of Finger: configuration and packaging of the finger service</a></li> </ol> </body> </html>