sparkslabs / kamaelia

Kamaelia is a toolset that had the aim of making working with concurrency simple and reusable. It is now retired in favour of Guild. (This is the definitive repository for kamaelia however)
Other
12 stars 6 forks source link

Kamaelia

For future (maintenance mode) Kamaelia development

Note: Kamaelia is stable, and useful. However: Kamaelia is not under active development at present.

The website still exists here, and still largely correct: http://kamaelia.org/

Guild

There's a note in the description of guild - which is the effective successor to Kamaelia. (Starting with replacing Axon first with something more pythonic)

The short description of guild is:

The focus of guild is primarily usability and correctness first, speed later. The latebinding is directly equivalent (and inspired by) the outbox model in Kamaelia and common names/aliases again relates "inbox/control/outbox/signal" and to Kamaelia's idea of backplanes and similar.

Links for Guild:

Compatibility

Guild is NOT directly compatible with Kamaelia. It's a ground up rewrite, using everything learnt in Kamaelia in how to make concurrent systems conceptually easy to work with.

That said, no one likes to throw away work, so there is some work on a compatibility layer occasionally being worked on.

So, what is that compatibility layer?

Kamaelia is a collection of components though as well as concurrency approach, and Guild includes a handful of useful components (including video capture, pygame, STM, backplanes, pipelines, audio capture, QT etc), but as you'd expect these are written as and when needed.

To avoid reinventing useful wheels I started work on a compatibility layer here:

There is a todo/done/WIP list:

What might actually happen though is for their to become created some form of decorator to allowing wrapping a kamaelia component as a guild actor. The reason for this - in case it's not obvious - is because there are lots of useful kamaelia components that exist and reimplementing them all seems a little silly :-)

That's not been done yet though.

Michael, October 2015