The mosaik API

The mosaik API defines the communication protocol between mosaik and the simulators it couples. We differentiate between a low-level and a high-level version of the API.

The low-level API uses plain network sockets to exchange JSON encoded messages.

The high-level API is an implementation of the low-level API in a specific programming language. It encapsulates all parts related to networking (socket handling, an event loop, message (de)serialization) and provides an abstract base class with a few methods that have to be implemented in a subclass. A high-level API implementation is currently available for Python, Java and Julia. Implementations for other languages will be added when needed.

The figure below depicts the differences between the two API levels.

Mosaik's low- and high-level API