Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Tree [4083fe] master /
History



File Date Author Commit
examples 2014-06-23 pgiri pgiri [ec3883] Add support for AsynFile and AsyncPipe under Wi...
LICENSE 2013-08-20 Alejandro Cabrera Alejandro Cabrera [c7ff61] docs(README/LICENSE): improvements + content
README.rst 2014-03-09 pgiri pgiri [375122] Changed example to simpler version.
asyncfile.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...
asyncfile3.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...
asyncoro.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...
asyncoro3.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...
disasyncoro.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...
disasyncoro3.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...
discoro.py 2014-06-28 pgiri pgiri [4083fe] Fixed recvall, automatic closing of pipes in Wi...

Read Me

asyncoro

version:1.4
site:Home
pythons:2.7+, 3.1+
platforms:Windows, Linux, Mac OS X

asyncoro makes asynchronous programming in Python 2.7+ and Python 3.1+ easy. Using it looks like:

import asyncoro, random, time
def coro_proc(n, coro=None):
    s = random.uniform(0.5, 3)
    print('%f: coroutine %d sleeping for %f seconds' % (time.time(), n, s))
    yield coro.sleep(s)
    print('%f: coroutine %d terminating' % (time.time(), n))

for i in range(10):
    asyncoro.Coro(coro_proc, i)

Read below for more details, or go Home for even more details.

Table of Contents

Features

  • Asynchronous (non-blocking) sockets, for concurrent processing of (heavy) network traffic
  • Efficient polling mechanisms epoll, kqueue, /dev/poll (and poll and select if necessary), and Windows I/O Completion Ports (IOCP) for high performance and scalability
  • SSL for security
  • Asynchronous timers, including non-blocking sleep
  • Asynchronous locking primitives similar to Python threading module
  • Message passing, for (local and remote) coroutines to exchange messages one-to-one or through broadcasting channels
  • Remote execution of coroutines for distributed/parallel programming (using message passing)
  • Monitoring and restarting of (local or remote) coroutines, for fault detection and fault-tolerance
  • Hot-swapping of coroutine functions, for dynamic system reconfiguration
  • Thread pools with asynchronous task completions, for executing time consuming synchronous tasks
  • Asynchronous database cursor operations (using asynchronous thread pool)

License

asyncoro is distriubuted under the MIT license.