ANNOUNCE: Kamaelia 0.1.1 Released
Kamaelia 0.1.1 has been released! This is the initial release version of Kamaelia. What is it? =========== Kamaelia is a collection of Axon components designed for network protocol experimentation in a single threaded, select based environment. Axon components are python generators are augmented by inbox and outbox queues (lists) for communication in a communicating sequential processes (CSP) like fashion. The architecture is specifically designed to try and simplify the process of designing and experimenting with new network protocols in real environments. This release contains components allowing the creation of TCP based clients and servers, and includes a few (very) simple protocol handlers to show usage. Other components include vorbis decode and playback, asynchronous file reading, and equivalents of "tee" and "strings". (Writing systems is much like building unix pipelines, hence the need for similar tools) Examples ======== Sample echo server: (default generator callback style) from Kamaelia.SimpleServerComponent import SimpleServer from Axon.Component import component, scheduler class EchoProtocolCB(component): def mainBody(self): if self.dataReady("inbox"): data = self.recv("inbox") self.send(data,"outbox") if self.dataReady("control"): data = self.recv("control") return 0 return 1 SimpleServer(protocol=EchoProtocolCB).activate() scheduler.run.runThreads(slowmo=0) Sample echo server: (Normal generator style) from Kamaelia.SimpleServerComponent import SimpleServer from Axon.Component import component, scheduler class EchoProtocol(component): def main(self): while 1: if self.dataReady("inbox"): data = self.recv("inbox") self.send(data,"outbox") if self.dataReady("control"): data = self.recv("control") return yield 1 SimpleServer(protocol=EchoProtocol).activate() scheduler.run.runThreads(slowmo=0) The two styles are provided for those comfortable with generators and those who aren't. The plain generator form can be particularly useful in simplifying error handling (see Kamaelia.Internet.TCPClient for an example). The callback form is useful for implementing components in other languages - eg pyrex. Requirements ============ * Python 2.3 or higher recommended, though please report any bugs with 2.2. * Axon (Any released version, 1.0.3 recommended, 1.0.4 when released) * vorbissimple (if you want to use the vorbis decode component) (Both Axon and vorbissimple are separate parts of the Kamaelia project, and available at the same download location - see below) Platforms ========= Kamaelia has been used successfully under both Linux and Windows (2000 and ME). (This has not yet been tested with Axon running on series 60 mobiles since to the select module hasn't been released for Series 60 mobiles yet) Where can I get it? =================== Web pages are here: http://kamaelia.sourceforge.net/Docs/ http://kamaelia.sourceforge.net/ (includes info on mailing lists) ViewCVS access is available here: http://cvs.sourceforge.net/viewcvs.py/kamaelia/ Licensing ========= Kamaelia is released under the Mozilla tri-license scheme (MPL/ GPL/ LGPL). Specifically you may choose to accept either the Mozilla Public License 1.1, the GNU General Public License 2.0 or the Lesser General Public License 2.1. Proprietary terms and conditions available upon request. Best Regards, Michael. -- Michael Sparks, Senior R&D Engineer, Digital Media Group Michael.Sparks@rd.bbc.co.uk British Broadcasting Corporation, Research and Development Kingswood Warren, Surrey KT20 6NP This message (and any attachments) may contain personal views which are not the views of the BBC unless specifically stated.
participants (1)
-
Michael Sparks