[Stackless] announcing Concurrence Framework

Henk Punt henkpunt at gmail.com
Sun Jan 18 20:35:55 CET 2009


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 <denis.bilenko at gmail.com> 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 <henkpunt at gmail.com> 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
>> Stackless at stackless.com
>> http://www.stackless.com/mailman/listinfo/stackless
>>
>




More information about the Stackless mailing list