whatshot Version 3.0 released! 

C++ Micro Services

Build modular and dynamic service-oriented C++ applications

Design, build and manage complex applications with reusable components and dynamic services. Extend and configure deployed systems at runtime.



Compose your application by creating reusable components called bundles with clear API boundaries. Take full control over the life-cycle of your bundles to selectively enable specific functionality.



Follow best practices by making use of the publish, find, and bind service model. Services are great for specifying your public API and to loosely couple components. Once bound, service calls do not impose any overhead and their dynamic nature makes it easy to create applications that adapt to the current environment.



Bundles as well as services are dynamic. They can come and go and you have full control over the life-cycle of the services you publish. Bundles can be installed at runtime and started or stopped in order to re-configure a deployed system.


Based on OSGi

We leverage years of industry experience by building upon the OSGi specifications. Although written for the Java Virtual Machine, most of its foundation is language agnostic and can be successfully mapped to a native C/C++ environment.



Multiple platform support is a primary goal. The code base compiles out of the box on many different operating systems, compilers, and architectures.


Apache 2.0 License

The software is open-source and licensed under the liberal and commercially friendly Apache 2.0 License.

Bundles and Tools

We provide a couple of bundles (components providing specific functionality) and tools to help you build and manage modular applications. While this list is still small, we aim at publishing more bundles that are useful to a broader audience. Contributions are welcome!

stable my_location Framework

The core framework, required for interacting with bundles and services. It gives you a lot of power and control over the composition and runtime features of your application.

experimental code Shell

The Shell is a command line tool for interacting with a C++ Micro Services applications using a textual user interface (TUI). It allows you to inspect services and manage bundles.

experimental public Web Console

The Web Console is a rich and extensible html management agent. Using this bundle adds a html frontend to your application, allowing to inspect and manage its configuration at runtime.

experimental settings Shell Service

The shell service provided by this bundle evaluates shell commands and is the standard back-end for clients like the Shell TUI.

experimental http Http Service

This bundle provides a http servlet engine on top of an embedded web server. Use it to register servlets for particular URLs and provide custom html content.


Our documentation helps you to get started quickly. It covers both high-level concepts and a detailed API reference.

power_settings_newGetting Started

Covers supported platforms, the build process, and a quick introduction to the basic features.


Understanding the fundamental concepts in C++ Micro Services is important. Get an overview to know what is possible.

bookmark_borderBest Practices

Read about best practices to see how to solve common problems using fundamental concepts and patterns.

descriptionAPI Reference

A detailed API reference is available for looking up particular functions or just browsing the existing feature set.


The community is here to help. If the documentation does not answer your questions, have a look at our GitHub Wiki or engage in direct communication.



We love contributions and actively encourage them.



The GitHub Wiki contains useful tips and tricks, updated on demand.



Ask questions in the Forum or browse previous discussions.



Post feedback, problem reports, or feature requests in our Issue Tracker.