Kamaelia 0.5.0 review
DownloadKamaelia is a toy box, a toolkit, a library of components you can take and bolt together, customise and create your own. This incl
|
|
Kamaelia is a toy box, a toolkit, a library of components you can take and bolt together, customise and create your own.
This includes components for TCP/multicast clients and servers, backplanes, chassis, Dirac video encoding & decoding, Vorbis decoding, pygame & Tk based user interfaces and Tk, visualisation tools, presentation tools, games tools.
A networked unix pipe for the 21st century - a way of making general concurrency easy to work with, and fun.
A framework providing the nuts and bolts for building components. A library of components built using that framework. Components are implemented at the lowest level as python generators, and communicate by message passing. Components are composed into systems in a manner similar to Unix pipelines, but with some twists that are relevent to modern computer systems rather than just file-like systems.
To enable programmers of all skill levels with playing with components in a networked environment. Network systems are naturally concurrent, and concurrency is often hard. Kamaelia is trying to make concurrency natural and easy to work with, because we are trying to solve some specific challenges regarding putting (some or all of) the BBC Archive online. Lego, K'Nex and building blocks are great metaphors for systems like unix pipelines that have made concurrency easy (in a constrained way) for 30 years.
Axon - the core concurrency framework - is considered API stable (current version 1.1.2). Kamaelia - the library of components - is considered still in development stage, since we recognise there's a lot more to do (current version 0.3.0). However generally this is regarding adding features rather than removing or changing. Components that exist today, for building systems:
- Components for TCP servers, multicast servers, backplanes, chassis, video encoding & decoding (using the BBC's Dirac codec), decoding and playback of audio & music encoded using ogg vorbis, creating user interfaces using python's favourite API for SDL (ie pygame, and Tk based user interfaces. There's also tools for visualisation[*], presentations, and a host of other random things. (including some tools for building games. The layout tools for this actually come from an old lava lamp simulator, so they've based on a physics/emergent model which I find nice to look at and seems to fascinate geeks and small children alike.
Finally in terms of tools, we have:
- An "axon shell", which is an Axon/Kamaelia aware IPython/unix shell.
- A visualiser
- A visual pipeline builder (which creates code for you based on your point, click and dragging).
This allows you to build systems ranging from viewing network topologies and interactive systems through to networked personal autocues.
What's New in This Release:
Key highlights of this release are BitTorrent support, OpenGL support, massively enhanced DVB support, collaborative whiteboarding with audio and support for daisy-chaining whiteboards, a nascent seaside-style Web server, and enhanced visual system composition (i.e. the ability to compose arbitrary graphs).
All of these include examples, including an OpenGL interface to BitTorrent, a BitTorrent-based simple (non-robust) streaming system, and a "record for me" scriptable PVR based on programme name.
Kamaelia 0.5.0 search tags