whatshot Version 3.7.5 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.

apps

Modular

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.

group_work

Service-Oriented

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.

autorenew

Dynamic

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.

navigation

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.

devices

Cross-Platform

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

gavel

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.

Documentation

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.

star_borderConcepts

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.

Community

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.

group

Contributions

We love contributions and actively encourage them.

import_contacts

Wiki

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

forum

Forum

Ask questions in the Forum or browse previous discussions.

feedback

Feedback

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