Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

Build Status Documentation Status Javadocs


The Multi-Agent Distributed Adaptive Resource Allocation (MADARA) Project is a middleware designed to provide core knowledge sharing capabilities for multi-agent robotics and real-time systems. MADARA includes a distributed knowledge base that aggregates changes to knowledge and sends them over an extensible transport system that currently supports UDP unicast, broadcast, and multicast, 0MQ, and RTTI DDS and PrismTech DDS.

We currently support compilation on Windows, Linux, Mac, and Android architectures using a variety of compilers such as clang, g++, and Visual Studio. We also support Java and Python ports of the C++ code base for portable multi-agent programming anywhere.



The MADARA project works closely with the Group Autonomy for Mobile Systems (GAMS) project. The installation scripts we have created there will automate installations for Mac and Linux users. For Android users, you will have to install the NDK / Android Studio separately and then you can use the same Linux scripts. For Windows users, the guide is a bit more user-error prone. We do have build scripts that use the Visual Studio command line, but VS2017 appears to have slowed down the build process with msbuild to a crawl, and we recommend simply building the projects generated by MPC directly to get everything compiled quickly.


We have an extensive Wiki on this site that covers common usage patterns, performance considerations, and guides for C++, Java and Python. Below, you'll find starting points. A more extensive list of Wiki pages can be found on the Wiki tab.

Getting Started with MADARA | Youtube Guide to Multi-Agent Autonomy

C++ API Docs | C++ Tutorial
Java Docs | Java Tutorial
Python Tutorial