segfaulthunter / asynchia-mainline

minimalist asynchronous networking library

asynchia

What is asynchia?

asynchia is a minimalist, asynchronous networking library.

Example

Here's a minimal example of a server printing everything it receives to stdout using asynchia. It may seem quite verbose, but it is asynchia's philosophy to not hide anything from the developer.

import sys
import socket

import asynchia
import asynchia.maps

class Echo(asynchia.IOHandler):
    def __init__(self, socket_map, sock):
        asynchia.IOHandler.__init__(self, socket_map, sock)
        if not self.readable:
            self.set_readable(True)
        
    def handle_read(self):
        read = self.recv(4096)
        sys.stdout.write(read)
        sys.stdout.flush()

if __name__ == '__main__':
    m = asynchia.maps.DefaultSocketMap()
    s = asynchia.Server(m, socket.socket(), Echo)
    s.bind(('', 25000))
    s.listen(0)
    m.run()

This revision is from 2009-08-04 02:18