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
- Host: GitHub
- URL: https://github.com/kdab/kdutils
- Owner: KDAB
- Created: 2022-03-17T12:24:33.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-17T14:15:36.000Z (about 1 year ago)
- Last Synced: 2024-10-19T13:09:47.735Z (about 1 year ago)
- Language: C++
- Homepage:
- Size: 532 KB
- Stars: 45
- Watchers: 35
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSES/BSD-3-Clause.txt
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)