An open API service indexing awesome lists of open source software.

https://github.com/kdab/kdutils

A set of C++ helpers and wrappers around the C++ standard library
https://github.com/kdab/kdutils

Last synced: 9 months ago
JSON representation

A set of C++ helpers and wrappers around the C++ standard library

Awesome Lists containing this project

README

          

# KDUtils

KDUtils is a library which provides both helpers and wrappers around the C++ STL
and a base for cross-platform applications, similar to QtCore.

Also check out [KDBindings](https://github.com/KDAB/KDBindings) for an
implementation of properties, signals, and slots. Used heavily in KDUtils.

## KDFoundation

The KDFoundation namespace provides an event loop, an `EventReceiver` abstract
class, and an `Object` type which is an event receiver that can have a parent
`Object` and any number of children.

On top of that, you get:

- Event
- FileDescriptorNotifier
- Timer
- EventQueue: a thread-safe stack of events
- Postman: a way of passing events down a series of receivers
- CoreApplication: a class that connects the EventQueue, Postman, and event loop.

## KDGui

KDGui provides a cross-platform windowing solution, built on top of the
CoreApplication.

You get:

- Window
- Keyboard and mouse events
- GuiApplication

## KDMqtt

KDMqtt provides a cross-platform MQTT client solution, based on [mosquitto](https://mosquitto.org/).

You get a thin wrapper around libmosquitto that

- seamlessly integrates into KDFoundation's `CoreAppliation`
- comes with an API featuring properties and signals using [KDBindings](https://github.com/KDAB/KDBindings)

For now, we don't support building mosquitto from source so you need to have it installed on your machine.
Minimal recommended version is libmosquitto v2.0.0 (previous versions are lacking full TLS support).

You can find setup instructions and download links at:

You may also want to have a look at the
[CI configuration](https://github.com/KDAB/KDUtils/blob/main/.github/workflows/build.yml)
of this project to see which dependencies we use to build KDMqtt.

## KDUtils/KDUtils

This namespace is the namesake of the entire library, and contains the STL
wrappers and helpers.

You get:

- ByteArray
- Dir
- File
- ElapsedTimer
- Flags
- Url
- Logging factory helper

## Building

On Linux:

```bash
sudo apt install libxkbcommon-dev libxcb-xkb-dev libxkbcommon-x11-dev wayland-scanner++ wayland-protocols libwayland-dev libmosquitto-dev
```

For debug builds with code coverage:

```bash
sudo apt install gcovr
```

On Android:

All dependencies are supplied by the Android SDK (version 32 and above) and NDK
(version 26.1.10909125 and above).

An example app can be built and run by opening the directory examples/gui_window/android in
Android Studio.

## Contact

- Visit us on GitHub:
- Email for questions about copyright, licensing or commercial support.

## Licensing

KDUtils is © Klarälvdalens Datakonsult AB and is available under the
terms of the [MIT](LICENSES/MIT.txt) license.

Contact KDAB at if you need different licensing options.

## Get Involved

Please submit your contributions or issue reports from our GitHub space at
.

Contact for more information.

## About KDAB

KDUtils is supported and maintained by Klarälvdalens Datakonsult AB (KDAB).

The KDAB Group is the global No.1 software consultancy for Qt, C++ and
OpenGL applications across desktop, embedded and mobile platforms.

The KDAB Group provides consulting and mentoring for developing Qt applications
from scratch and in porting from all popular and legacy frameworks to Qt.
We continue to help develop parts of Qt and are one of the major contributors
to the Qt Project. We can give advanced or standard trainings anywhere
around the globe on Qt as well as C++, OpenGL, 3D and more.

Please visit to meet the people who write code like this.

Stay up-to-date with KDAB product announcements:

- [KDAB Newsletter](https://news.kdab.com)
- [KDAB Blogs](https://www.kdab.com/category/blogs)
- [KDAB on Twitter](https://twitter.com/KDABQt)