Sirikata isn’t a monolithic piece of software. At its most basic, Sirikata is an architecture and set of protocols that allow the components of that architecture to interact. Implementations of these components allow a world developer to collect and tie together all the pieces necessary to run a world.
The Sirikata Architecture describes the high level components required in a Sirikata virtual world and their basic functions. This document lists the known implementations of the different Sirikata components. This is a good reference for world developers: they will select one or more options from each category to pull together a world that suits their, and their user’s, needs.
This is just a high level breakdown. For instance, the C++ implementation is plugin based and you can choose to turn features on or off, change which implementation you use, and interact with different external services. These options are described in more detail in the Introduction for World Developers and in each implementation’s documentation.
There is one source for the protocols that allow Sirikata components to interact. The repository is at http://github.com/sirikata/sirikata-protocol and is referenced by all implementations listed here. Note that some components which support distributed deployment (e.g. the C++ space server) have additional, internal protocols. Other implementations are not required or expected to support these internal protocols. Only protocols in the protocol repository should be used or relied on.
So far, content distribution has been focused around HTTP based solutions.