Version 204 (modified by jonathanj, 2 years ago)

Make the HelloResource copy-pasteable into a REPL and add a newline to the GET response

Donate to Twisted

Donations are tax-deductible.

PayPal

Twisted Sponsors

Become a 2011 sponsor today!

Your Logo Here

You can use the form above for both personal donations and corporate sponsorships; for any donation above the bronze level, we will display your logo here on the front page.

Gold

google

Silver

appropriate solutions Zenoss 2009 logo security metrics Pantheon logo (silver sponsorship, 2011)

Bronze

SEOMoves logo that has the correct extension. hydra labs

What is Twisted?

Twisted is an event-driven networking engine written in Python and licensed under the open source  MIT license.

Easy Custom Servers and Clients

Twisted makes it easy to implement custom network applications, both servers and clients. Here's a TCP server that echoes back everything that's written to it:

from twisted.internet import protocol, reactor

class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

reactor.listenTCP(1234, EchoFactory())
reactor.run()

Learn more about  writing servers,  writing clients and the  core networking libraries , including support for SSL, UDP, scheduled events, unit testing infrastructure, and much more.

Event-Driven Web Applications

Twisted includes an event-driven web server. Here's a sample web application:

from twisted.web import server, resource
from twisted.internet import reactor

class HelloResource(resource.Resource):
    isLeaf = True
    numberRequests = 0
    
    def render_GET(self, request):
        self.numberRequests += 1
        request.setHeader("content-type", "text/plain")
        return "I am request #" + str(self.numberRequests) + "\n"

reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()

Learn more about  web application development and Twisted's  HTTP client.

And Other Protocols

Twisted also supports many common network protocols, including SMTP, POP3, IMAP, SSHv2, and DNS. For more information see our documentation and  API reference.

More Information

http://oreilly.com/catalog/covers/twistedadn.s.gif

General Information:

More Useful Pointers: