April 2024 - This site, and Kamaelia are being updated. There is significant work needed, and PRs are welcome.



A component that fixes the message size of an input stream to a given value, outputting blocks of that size when sufficient input has accumulated. This component's input is stream orientated - all messages received are concatenated to the interal buffer without divisions.

Example Usage

Chunkifying a console reader:


How does it work?

Messages received on the "inbox" are buffered until at least N bytes have been collected. A message containing those first N bytes is sent out "outbox". A CharacterFIFO object is used to do this in linear time.

The usual sending of a producerFinished/shutdown to the "control" inbox will shut it down.


class Chunkifier(Axon.Component.component)

Chunkifier([chunksize]) -> new Chunkifier component.

Flow controller - collects incoming data and outputs it only as quanta of a given length in bytes (chunksize), unless the input stream ends (producerFinished).

Keyword arguments: - chunksize -- Chunk size in bytes - nodelay -- if set to True, partial chunks will be output rather than buffering up data while waiting for more to arrive.


  • control : Shut me down
  • inbox : Data stream to be split into chunks


  • outbox : Each message is a chunk
  • signal : I've shut down

Methods defined here


You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.

__init__(self[, chunksize][, nodelay])





Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!

Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.

-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT