Chapter 6. Deploying Twisted Applications
Twisted is an engine for producing scalable, cross-platform network servers and clients. Making it easy to deploy these applications in a standardized fashion in production environments is an important part of a platform like this getting wide-scale adoption.
To that end, Twisted provides an application infrastructure: a reusable and configurable way to deploy a Twisted application. It allows a programmer to avoid boilerplate code by hooking an application into existing tools for customizing the way it is run, including daemonization, logging, using a custom reactor, profiling code, and more.
The Twisted Application Infrastructure
The application infrastructure has five main components: services, applications, TAC files, plugins, and the twistd command-line utility. To illustrate this infrastructure, we’ll turn the echo server from Chapter 2 into an application. Example 6-1 reproduces the server code.
fromtwisted.internetimportprotocol,reactorclassEcho(protocol.Protocol):defdataReceived(self,data):self.transport.write(data)classEchoFactory(protocol.Factory):defbuildProtocol(self,addr):returnEcho()reactor.listenTCP(8000,EchoFactory())reactor.run()
Services
A service is anything that can be started and stopped and that
implements the IService interface. Twisted comes with service implementations for TCP, FTP, HTTP, SSH, DNS, and many other protocols. Many services can register with a single ...