Networking
==========
Twisted
-------
`Twisted `_ is an event-driven networking
engine. It can be used to build applications around many different networking
protocols, including http servers and clients, applications using SMTP, POP3,
IMAP or SSH protocols, instant messaging and `much more `_.
PyZMQ
-----
`PyZMQ `_ is the Python binding for `ZeroMQ `_,
which is a high-performance asynchronous messaging library. One great advantage is that ZeroMQ
can be used for message queuing without a message broker. The basic patterns for this are:
- request-reply: connects a set of clients to a set of services. This is a remote procedure call
and task distribution pattern.
- publish-subscribe: connects a set of publishers to a set of subscribers. This is a data
distribution pattern.
- push-pull (or pipeline): connects nodes in a fan-out / fan-in pattern that can have multiple
steps, and loops. This is a parallel task distribution and collection pattern.
For a quick start, read the `ZeroMQ guide `_.
gevent
------
`gevent `_ is a coroutine-based Python networking library
that uses greenlets and libevent event loop.