Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/contents.rst.inc
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ different scenarios.
scenarios/cli
scenarios/gui
scenarios/db
scenarios/network
scenarios/admin
scenarios/ci
scenarios/speed
Expand Down
32 changes: 32 additions & 0 deletions docs/scenarios/network.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Networking
==========

Twisted
-------

`Twisted <http://twistedmatrix.com/trac/>`_ 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
`many more <http://twistedmatrix.com/trac/wiki/Documentation>`_.

PyZMQ
-----

`PyZMQ <http://zeromq.github.com/pyzmq/>`_ is the Python binding for `ZeroMQ <http://www.zeromq.org/>`_,
which is a high-performance asynchronous messaging library. One great advantage is that ZeroMQ
can be used for message queuing without 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 <http://zguide.zeromq.org/page:all>`_.

gevent
------
`gevent <http://www.gevent.org/>`_ is a coroutine-based Python networking library
that uses greenlets and libevent event loop.