/balau

Enterprise quality C++ application framework with dependency injection, test framework, and logging

Primary LanguageC++Apache License 2.0Apache-2.0

Balau

Documentation: developer manual, API documentation

Main repository: Balau Git repository

License: Apache License, Version 2.0

Balau is a C++ application framework designed for enterprise quality C++ software development.

Following the recent revisions of the language, C++ has matured to become an attractive candidate for rapid enterprise quality application development. Balau provides tools designed to support the rapid development of high performance C++ enterprise applications.

Balau focuses on using modern C++17 features and the standard unicode string classes.

The library has been conceived for the development of applications that have a dependency injection based architecture, have complex logging requirements, and will be developed with a test driven development methodology. Balau has also been designed to provide a base on which Unicode aware C++ software applications may be written with ease.

Four key components of the Balau library are the injector, the environment configuration framework, the logging system, and the test runner. In this respect, part of Balau is a C++ equivalent to the de facto standard Java application development components consisting of the Java standard library for Unicode support, Guice/Spring for dependency injection and environment configuration, Log4j/Slf4j/Logback for logging, and JUnit/TestNG for testing.

In addition to the injector, environment configuration, logger, and test runner, Balau also provides a set of components and utilities with simple APIs, including an HTTP/WebSocket web application framework.

For more information on using and contributing to the library, please refer to the Balau developer manual.

Pending work

The following work is pending completion:

  • remove the dependency on the Boost/ICU libraries;
  • port Balau to the Windows platform.