FAQ
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 at 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.

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedMar 2, '05 at 4:11p
activeMar 2, '05 at 4:11p
posts1
users1
websitepython.org

1 user in discussion

Michael Sparks: 1 post

People

Translate

site design / logo © 2022 Grokbase