Networking

https://farm3.staticflickr.com/2892/34151833832_6bdfd930af_k_d.jpg

Twisted

O Twisted é um mecanismo de rede orientado a eventos. Ele pode ser usado para criar aplicativos em torno de vários protocolos de rede diferentes, incluindo servidores e clientes http, aplicativos usando protocolos SMTP, POP3, IMAP ou SSH, mensagens instantâneas e muito mais`much more <http://twistedmatrix.com/trac/wiki/Documentation>`_.

PyZMQ

O PyZMQ é o bind Python para o ZeroMQ, que é uma biblioteca de mensagens assíncronas de alto desempenho. Uma grande vantagem do ZeroMQ é que ele pode ser usado para filas de mensagens sem um runner de mensagens. Os padrões básicos para isso são:

  • request-reply: conecta um conjunto de clientes a um conjunto de serviços. Esta é uma chamada de procedimento remoto e um padrão de distribuição de tarefas.

  • publish-subscribe: conecta um conjunto de editores a um conjunto de assinantes. Este é um padrão de distribuição de dados.

  • push-pull (ou pipeline): conecta nós em um padrão fan-out/fan-in que pode ter várias etapas e loops. Este é um padrão de distribuição e coleta de tarefas paralelas.

Para ler um guia rápido veja ZeroMQ guide.

gevent

gevent é uma biblioteca de rede Python baseada em corutine que usa greenlets para fornecer uma API síncrona de alto nível em cima do loop de eventos libev.