[Stackless] announcing Concurrence Framework

Denis Bilenko denis.bilenko at gmail.com
Fri Jan 16 19:03:02 CET 2009


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