The purpose of the project is to develop a portable programming framework that facilitates distributed and multi-threaded programming for C++, Java, and Python. MADARA was originally developed as an agent-based middleware specifically for real-time, distributed artificial intelligence, but is now more general purpose for distributed timing, control, knowledge and reasoning, and quality-of-service.
MADARA is composed of several tools and middleware, and the main entry point into the system is the Knowledge and Reasoning Language (KaRL) Engine, which provides a real-time scripting language for nanosecond execution times hooked into a flexible transport layer for distributed reasoning. The KaRL engine also supports object-oriented C++, Java, and Python programming through Containers, classes that provide abstractions and references for variable location within the KaRL Knowledge Base.
This project is currently in process of being ported from http://madara.googlecode.com.
- Knowledge Base
- Scripting Language
- Object-Oriented Containers
- UDP unicast, broadcast, multicast transports
- OMG DDS transports
- ZeroMQ transport
- Filters for on send, on receive, and on rebroadcast events