Standard IPC for Python?

Philip Semanchuk philip at semanchuk.com
Tue Jan 13 11:39:23 EST 2009


On Jan 13, 2009, at 11:25 AM, Laszlo Nagy wrote:

> I would like to develop some module for Python for IPC. Socket  
> programming howto recommends that for local communication, and I  
> personally experienced problems with TCP (see my previous post:  
> "Slow network").
>
> I was looking for semaphores and shared memory, but it is not in the  
> standard lib. I was also thinking about unix domain sockets, but it  
> is not available under windows.
>
> I was looking for non-standard modules as well, but only found a few  
> references with insufficient information. For example:
>
> http://code.activestate.com/recipes/519626/
>
> The question is: what is the standard way to implement fast and  
> portable IPC with Python? Are there tools in the standard lib that  
> can do this?

They're not in the standard lib, but I have 3 modules for Python IPC.  
They're all Unix-only.

posix_ipc gives you semaphores, shared memory and messages queues:
http://semanchuk.com/philip/posix_ipc/

sysv_ipc gives you semaphores and shared memory:
http://semanchuk.com/philip/sysv_ipc/

shm also gives access to SysV semaphores and shared memory:
http://nikitathespider.com/python/shm/

The only reason to use shm over the sysv_ipc module is that shm  
supports versions of Python < 2.5. I'm not developing shm any further,  
so avoid using it if possible.

Here's an overview that compares the three:
http://semanchuk.com/philip/PythonIpc/


The overview of the overview is that posix_ipc is the one to use if  
you can because it is the simplest. sysv_ipc is more broadly supported  
but is more complicated for programmer (me) and user (you) alike.

Bugs reports are of course welcome.


Enjoy!

Philip





More information about the Python-list mailing list