All Projects → eXpl0it3r → PubBus

eXpl0it3r / PubBus

Licence: other
A simple implementation of a MessageBus.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to PubBus

WatsonCluster
A simple C# class using Watson TCP to enable a one-to-one high availability cluster.
Stars: ✭ 18 (-5.26%)
Mutual labels:  message
MessageTip
轻快型消息提示窗
Stars: ✭ 54 (+184.21%)
Mutual labels:  message
socket
Dazzle Async Socket
Stars: ✭ 19 (+0%)
Mutual labels:  message
eda
eda is a library for implementing event-driven architectures.
Stars: ✭ 31 (+63.16%)
Mutual labels:  publish-subscribe
super-mario-message
Display custom messages in a Super Mario Bros environment
Stars: ✭ 18 (-5.26%)
Mutual labels:  message
uorb
C++ inter-thread publish/subscribe middleware ported from PX4 and redesigned based on POSIX
Stars: ✭ 35 (+84.21%)
Mutual labels:  publish-subscribe
Message-Manager-Bot
A Telegram Message Manager Bot by @AbirHasan2005
Stars: ✭ 32 (+68.42%)
Mutual labels:  message
xyTalk-pc
企业IM即时通讯定制平台,百万级高并发、高性能、可扩展、安全、高交互体验的企业通信和协作im平台。包含通讯服务、客户端(PC、Android、iOS)、Web门户(用于集成企业应用)、WebAPI。
Stars: ✭ 48 (+152.63%)
Mutual labels:  message
SimpleDialogs
💬 A simple framework to help displaying dialogs on a WPF app
Stars: ✭ 24 (+26.32%)
Mutual labels:  message
payload
A javascript single page application (SPA) driver for REST API payload management.
Stars: ✭ 16 (-15.79%)
Mutual labels:  publish-subscribe
telegram-logger-errors
Telegram logger errors package laravel | Laravel пакет telegram логгер ошибок
Stars: ✭ 15 (-21.05%)
Mutual labels:  message
angular-PubSub
Angular 1.x implementation of the Publish–Subscribe pattern.
Stars: ✭ 32 (+68.42%)
Mutual labels:  publish-subscribe
newsletter
Observer done right
Stars: ✭ 13 (-31.58%)
Mutual labels:  publish-subscribe
vercel-toast
💬 Framework-agnostic vercel design's toast component (≈1KB Gzipped)
Stars: ✭ 67 (+252.63%)
Mutual labels:  message
WatsonWebsocket
A simple C# async websocket server and client for reliable transmission and receipt of data
Stars: ✭ 158 (+731.58%)
Mutual labels:  message
tasker-config
My very own tasker configuration
Stars: ✭ 28 (+47.37%)
Mutual labels:  message
message
基于 Vue2.x 的消息提示组件。Vue-based message component
Stars: ✭ 26 (+36.84%)
Mutual labels:  message
wechat-encrypt
微信开放平台会话消息加解密模块
Stars: ✭ 25 (+31.58%)
Mutual labels:  message
talek
a Private Publish Subscribe System
Stars: ✭ 39 (+105.26%)
Mutual labels:  publish-subscribe
hermes
ZMQ-based framework for building Pub-Sub Systems, written in Python 3.
Stars: ✭ 13 (-31.58%)
Mutual labels:  publish-subscribe

PubBus

PubBus is a simple, header-only implementation of a MessageBus.

Unit tests are written with the Catch2 test framework.

Note: PubBus requires C++17, the examples and tests use some C++20 features

Example

#include <PubBus/PubBus.hpp>
#include <iostream>

struct DummyMessage : pub::Message
{
    int important_value = 0;
};

int main()
{
    auto bus = pub::MessageBus{};
    const auto message = DummyMessage{ .important_value = 100 };

    bus.subscribe<DummyMessage>(
        [](const DummyMessage message)
        {
            std::cout << "Important value: " << message.important_value << "\n";
        }
    );

    bus.publish(message);
}

Test Execution

For Visual Studio I recommend installing the Test Adapter for Catch2 and set it up to use the provided catch.runsettings.

For CMake/CTest you can run: ctest <build-dir>/test -S Release

License

This software is available under 2 licenses -- choose whichever you prefer.

  • Public Domain
  • MIT

Credits

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].