Utility Modules

This is a small collection of utility components. They perform various universally useful functions, ranging from Console input and output to simple data filtering and transformations.

Console I/O (standard input and output)

Kamaelia.Util.Console contains the ConsoleReader and ConsoleEchoer components for reading from standard input and writing to standard output respectively.

Backplanes, Splitters, Fanouts (ways to distribute data to multiple receipient components)

The Splitter and Fanout components are both very similar - send one item of data to them and it gets replicated to multiple destinations. The Splitter module is the more actively maintained with a wider range of components in it.

The Backplane module built on them by providing a way to "publish" data under a name, and allow other components to "subscribe" to it.

Data filtering, processing, transforming
There is a whole range of components for performing simple functions, ranging from de-tupling data (eg. extracting one of the terms from a tuple it is sent) to converting data to strings or applying an arbitrary transformation (function) to data.

Processing streams of data

There are also components for tagging or chunking data or splitting strings by newline characters or tokenising strings.

Timing, Regulating and controlling
This fairly maverick bunch of modules contain components that perform various functions that can be used to control or regulate a system.

Chooser components serve up data one item at a time on demand - a way to iterate through a collection of data items, values or even instructions. DataSource is a simplified way of injecting data into a system; and LossyConnector provides a way to 'loose it' if there is too much clogging up!

Clock and RateFilter contain components for generating or regulating the timing or flow of data - for example, generating regular timing pulses, or buffering and regulating the flow of data, perhaps to maintain a frame rate.

-- Matt, April 2007


Kamaelia is an open source project originated from and guided by BBC Research. For more information browse the site or get in contact.

This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)

(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)