Twisted is many things, but at its core it's an event-driven network programming framework. What can Twisted do? Nearly anything. It supports various network transports and an impressive number of protocols, including HTTP, SSH, IMAP, POP3, IRC, and the list goes on. The interesting about Twisted is it enables you to write a single application that can serve more than one protocol, while sharing the same event loop and memory space. If that sounds like jibberish, you may not be able to appreciate Twisted's power and versatility. On the other hand, if that made sense, you probably started imagining writing a game server that could receive actual emails and deliver them to the characters inside your game. Cool, eh?
If your product requires a multi-faceted approach or uses numerous protocols that require integration, you'll want a closely woven framework behind it that combines everything.
Written in Python, Twisted brings the simplicity and beauty of that language to network programming. However, just because it's written in Python doesn't mean it's perfectly approachable. Twisted can be difficult to grok, and is known for its steep learning curve. The thing newcomers will need to be most careful about is running blocking code. Your event loop won't like you for that. When done properly, Twisted is an amazing framework to build on. Here at Lintel, we have used it to great effect on several of our projects.
Twisted was originally created by its author to aid in writing multiplayer network games, but it turned out to be such a powerful networking framework that the community began to take notice and the focus changed to more practical themes.
Twisted has become a stable, but constantly evolving, networking engine with ever-growing features and components. It encompasses a variety of servers, clients, and sub-projects that span a wide range of development needs. It's built under the open source MIT license.