uMundo is a lightweight refactoring of the Mundo publish/subscribe middleware to deliver byte arrays and objects on channels from publishers to subscribers. With lightweight, we do not necessarily refer to runtime behavior or memory footprint (though we work hard to keep it sane) but to the amount of code we have to maintain in order to arrive at a working system. It runs on Windows, Linux, Mac OSX, iOS devices and Android.
uMundo is distributed under the Simplified BSD license.
uMundo is divided into four components with different responsibilities in various stages of maturity:
- Stefan Radomski radomski@tk.informatik.tu-darmstadt.de
- Daniel Schreiber schreiber@tk.informatik.tu-darmstadt.de
- Felix Heinrichs felix.heinrichs@cs.tu-darmstadt.de
The authority on the state of uMundo is our build-server. The tests, while not numerous, are rather strict as there are plenty of asserts in the source code. Overall, uMundo is not yet suited for serious deployments, there are still some memory leaks and discovery is still somewhat flakey, especially with the embedded mDNS server on Android.
<tr><td>iOS 5.x</td><td>
<ul>
<li>umundo.s11n uses the C++ generator as with Mac OSX.
<li>The automated test are not executed on the build-server.
</ul>
</td></tr>
<tr><td>Windows 7</td><td>
<ul>
<li>Everything builds and runs just fine with MS Visual Compiler and Visual Studio 10 and NMake.
<li>We do not support MinGW as we would need precompiled libraries for our build-time dependencies.
</ul>
</td></tr>
<tr><td>Debian Linux 6.0.4</td><td>
<ul>
<li>Everything builds and runs just fine with GCC.
</ul>
</td></tr>
<tr><td>Android 4.x</td><td>
<ul>
<li>Worked whenever we tried, but we cannot automatically test on the simulator, as <a href="http://developer.android.com/guide/developing/devices/emulator.html#emulatornetworking">google does not deem multicast to be important</a>.
<li>The automated test are not executed on the build-server.
</ul>
</td></tr>
</tr>
Platform | Issues |
---|---|
Mac OSX 10.7 |
|
contrib # Contributed scripts and components not part of uMundo as such.
|-archives # Archives and patches for the libraries we rely upon.
|-samples
| |-android # Eclipse project illustrating usage of umundo on Android devices.
| |-java # Sample java applications illustrating usage of umundo from Java.
|-cmake # Finding libraries, cross-compilation and packaging support for build-system.
|-prebuilt # Prebuilt libraries of our dependencies for all supported platforms.
core # umundo.core implementation, see README.md within.
docs # General documentation, API docs are in respective components docs/ directory.
installer # Installers of uMundo for the supported platforms.
lib # Prebuilt libraries of uMundo itself for all supported platforms.
rpc # umundo.rpc implementation.
s11n # umundo.s11n implementation, see README.md within.
util # umundo.util with some umundo components and utility classes.
On Debian amd64 stable, there are some linking issues when enabling BUILD_PREFER_STATIC_LIBRARIES via cmake.