ANN: Axon 1.1.0 has been released!

Michael Sparks zathras at
Sat Jun 4 19:03:50 CEST 2005

Axon 1.1.0 has been released!

What is it?
Axon is a collection of pure python modules from the Kamaelia project
which allow you to build concurrent systems in a compositional manner
using communicating python generators. Components are python generators
are augmented by inbox and outbox queues (lists) for communication in a
CSP like fashion. Version 1.1.0 also adds in the facility for writing
components using threads as well as using generators.

Put another way this allows you to build complex systems easily out of
small concurrent components in a fashion similar to unix pipelines, except
rather than being limited to just stdin/stdout you can have whatever
inputs/outputs you desire. (The defaults are inbox/outbox,

Axon works under Linux, Mac OS X, Windows and a subset has been ported
to Series 60 mobiles.

Documentation is largely generated directly from the test suite output.

Also, a presentation on Kamaelia (which may help put Axon in context)
was give at ACCU/Python UK conference in April this year. The slides
are available here:

This is due to be released as a BBC R&D White Paper shortly. 

What's Kamaelia? (for context :-)
Kamaelia is a project that aims to allow the BBC and others to create and
test open protocols for large scale streaming. Substantial subsystems
include a core concurrency subsystem and the beginnings of an RTSP/RTP
streaming server. Existing functionality in Kamaelia that uses Axon
includes a generic TCP & Multicast client and server framework that
allows protocols to be trivially created, a number of example protocols,
and an Ogg Vorbis decoding subsystem for client site testing

What's new in Axon 1.1.0?
This release features support for components to be threads as well as
python generators has been added, allowing the integration of arbitrary
code blocking or non-blocking. Other changes include microprocesses (and
hence components) can now be run without a scheduler in standalone mode
and the debug subsystem has been reactivated system wide. 

Threaded components:
   * Inherit from threadedcomponent rather than Component
   * Rather than have a generator method called "main" you have a main
     thread method called "run". (This will change to "main" at some later
     point in time)
   * May be blocking. (This was the primary reason for creating them - Nokia
     Series 60 sockets cannot be used in a nonblocking manner, requiring the
     use of threads to avoid blocking)

Axon has been used successfully under both Linux, Windows and Mac OS
X. A separate release branch exists for Series 60 Nokia mobiles.

Where can I get it?
Axon is a sub-project of the BBC R&D Kamaelia project, which means Axon is
downloadable from

Web pages are here: (includes info on mailing lists)

ViewCVS access is available here:

Kamaelia (and hence Axon) 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.Sparks at,
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 state

More information about the Python-list mailing list