Yes I know of eventlet, It uses the same underlying idea as Concurrence (provide sync APi to async IO by combing event multiplexer with user level threads (or co-routines in the case of greenlets). I do think the scope of Concurrence is much bigger. Concurrence will try to provide many useful protocols (internet, database) in a coherent framework. From what I can see, eventlet just provides a socket implementation, and no further protocol support.
You might want to think of Concurrence having a similar scope to Twisted, but with a saner programming model (actually the first prototype of Concurrence used to be called 'Twistless'... :-) As far as performance goes, I you read the eventet docs, at some point they claim that greenlets are faster than stackless (for running eventlet). As far as I know stackless should be faster, if not, what is the point?, we would all be using greenlet on top of normal python.... But actually I think nobody ever did any proper benchmarking on this .... On Fri, Jan 16, 2009 at 7:03 PM, Denis Bilenko <[email protected]> wrote: > Interesting! > > I spent some time with eventlet, a networking library built on top of > greenlet (for CPython). > It has the exact same goals as you stated below and aims to provide > the same set of services. > > Here's an example that can get you feel of the library > http://devel.ag-projects.com/~denis/cgi-bin/hgweb.cgi/file/tip/examples/connect.py > > I wonder if there are any reasons to prefer Concurrence to Eventlet. > Is there anything that greenlets fundamentally cannot do that Stackless can? > Is there something Concurrence can do that Eventlet will never be able to? > Maybe there's stability/performance difference? > > On Mon, Jan 12, 2009 at 9:22 PM, Henk Punt <[email protected]> wrote: >> Hi, >> >> I would like to announce the availablility of the 'Concurrence >> Framework'. (http://concurrence.googlecode.com) >> >> Basically it is a library build on top of Stackless that enables the >> easy creation of high performance network servers >> (http servers, chat servers, comet servers etc etc). >> >> It is similar in scope to the Twisted framework, but it uses a >> Lightweight-processes-with-message-passing approach to concurrency as >> opposed to Twisteds event-driven model. >> >> I have created this framework out of frustration with Twisteds model. >> After working for some years with Twisted it has become apparent to me >> that the event-driven model for IO/socket programming although very >> performant, quite easily leads to difficult to maintain program >> code... >> >> Instead I would prefer to program in a 'blocking' style like you would >> traditionally do with threads. At the same time I still would like to >> retain >> the performance and lack of threading issues of event-driven IO. >> >> This is what the Concurrence Framework provides... (trough Stackless >> and libevent) >> >> Most notably it already includes: >> - a Socket API, >> - a DBAPI 2.0 compatible implementation of a MySQL Driver >> - an implementation of a HTTP1.1/WSGI compliant webserver. >> >> Some components are implemented in Pyrex for speed (low level >> interface to libevent, IO buffer interface, low-level MySQL stuff). >> >> The code is currently quite usable, but some interfaces might still >> change as I gather feedback from the community. >> >> In the following weeks I will try to finalize the core documentation >> and I will create a proper website to host it. >> >> In the meantime, anyone interested can checkout the code from coogle code: >> >> svn checkout http://concurrence.googlecode.com/svn/trunk/ concurrence >> >> from there please follow the instructions in INSTALL.TXT (currently >> Linux/MacOSX only). >> >> Documentation can be found in doc/_build/html/index.html, but this is >> a work in progress... >> Examples used in the documentation can also be found in the examples >> directory. >> The unittests in the test directory could also provide some guidance >> on how to use the framework. >> >> Issues/feedback can be mailed to me or you can add an issue on >> http://code.google.com/p/concurrence/issues/list. >> >> Enjoy, >> >> Henk Punt >> >> _______________________________________________ >> Stackless mailing list >> [email protected] >> http://www.stackless.com/mailman/listinfo/stackless >> > _______________________________________________ Stackless mailing list [email protected] http://www.stackless.com/mailman/listinfo/stackless
