August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
Echo protocol and Fortune Cookies
EchoProtocol is the simplest protocol and forms a simple loopback protocol useful for integration testing. In practice this component is really a data pass throughcomponent since all data recieved on its inbox is passed on directly to its outbox. Kamaelia.Util.PassThrough is a similar component.
FortuneCookieProtocol is one step above EchoProtocol. It runs the fortune program on the server and sends the result to its outbox. In a networked environment what this means is the server will simply blat the fortune cookie to a client that connects to the server.
AudioCookieProtocol
is a further logical extension. Similar to FortuneCookieProtocol it too
runs an external program and sends the result to its outbox. In this
case however rather than a short piece of text, it is a short snippet of
audio.
SimpleVideoCookieServer
is essentially the same but his time with a short piece of video.
HTTP
Kamaelia.Protocol.HTTP
is a collection of components implementing an extensible HTTP server and
an HTTP Client. There is also an implementation of a SHOUTcast/Icecast
client.
RTP
Kamaelia.Protocol.RTP
is a set of modules for implementing RTP.
Simple Reliable Multicast
Kamaelia.Protocol.SimpleReliableMulticast
module contains a simple collection of components that can be pipelined
together to create a simple protocol for reliable transfer of data over
multicast - designed to cope with duplicated, lost and
delivered-out-of-order packets.
Bit Torrent
Kamaelia.Protocol.Torrent
is a set of modules that wrap the mainline bittorrent code adding
bit-torrent components to Kamaelia. Specifically the TorrentPatron
component provided shared access to bittorrent functionality.
Support: Packetisation, Framing, MIME types, etc
These components don't implement fully fledged protocols, but provide
useful support that many protocols may wish to use.
The Framing module contains components that implement a simple protocol for framing chunks of data and combining them with an associated 'tag' - making it easy to add things like sequence numbers to a stream of chunks of data.
MimeRequestComponent module unpacks MIME request headers into a python dict object.
Packetise
contains a simple component for ensuring that data chunks do not exceed
a specified size - particularly useful, for example, for ensuring UDP
payloads fit within a packet size limit.
-- Michael, December 2004; updated by Matt, April 2007