

.. image:: _static/pythonring.png
   :align: right

Python_ is a mature dynamic language whose interpreters can interact with 
all major computing platforms today.  

**execnet** provides carefully tested means to easily interact with Python
interpreters across version, platform and network barriers.  It has 
a minimal and fast API targetting the following uses:

* distribute tasks to local or remote CPUs
* write and deploy hybrid multi-process applications 
* write scripts to administer a bunch of exec environments

.. _Python: http://www.python.org

Features
------------------

* automatic bootstrapping: no manual remote installation.

* safe and simple serialization of python builtin types (no pickle)

* flexible communication: synchronous send/receive as well as 
  callback/queue mechanisms supported

* easy creation, handling and termination of multiple processes

* well tested interactions between CPython 2.4-2.7, CPython3.1, Jython 2.5.1 
  and PyPy 1.1 interpreters.

* fully interoperable between Windows and Unix-ish systems. 

* many tested :doc:`examples`

Known uses
-------------------

* `py.test`_ uses it for its `distributed testing`_ mechanism. 

* Jacob Perkins uses it for his `Distributed NTLK with execnet`_ 
  project to launch computation processes through ssh.  He also
  compares `disco and execnet`_ in a subsequent post. 

* Ronny Pfannschmidt uses it for his `anyvc`_ VCS-abstraction project
  to bridge the Python2/Python3 version gap. 

* sysadmins and developers are using it for ad-hoc custom scripting 

.. _`py.test`: http://pytest.org
.. _`distributed testing`: http://codespeak.net/py/dist/test/dist.html
.. _`Distributed NTLK with execnet`: http://streamhacker.com/2009/11/29/distributed-nltk-execnet/
.. _`disco and execnet`: http://streamhacker.com/2009/12/14/execnet-disco-distributed-nltk/
.. _`anyvc`: http://bitbucket.org/RonnyPfannschmidt/anyvc/

Project status
--------------------------

The current 1.0 series aims at :doc:`basic API <basics>` stabilization, improved tracing and robust termination.

The 1.1 series will target setting up permanent networks and offering unix-shell-like capabilities to spawn processes and applications.

execnet was conceived and is `actively developed`_ by `Holger Krekel`_.  
The package is licensed under the GPL Version 2 or later, at your choice.  
Armin Rigo and Benjamin Peterson have done major contributions which
are MIT-licensed. 

.. _`basic API`: basics.html
.. _`actively developed`: http://bitbucket.org/hpk42/execnet/changesets
.. _`Holger Krekel`: http://twitter.com/hpk42

.. toctree::
   :hidden:

   support
   implnotes
   install 
   rel-1.0.0
