ANNOUNCE: Kamaelia 0.1.1 Released

M

Michael Sparks

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
(e-mail address removed)
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,154
Members
46,702
Latest member
LukasConde

Latest Threads

Top