β If you find Areg SDK useful, please give us a star β it helps the community grow!
Most C++ projects donβt fail on algorithms β they fail on threads, IPC, and fragile wiring. Unlike traditional frameworks, Areg SDK automates communication, unifying async RPC, Pub/Sub, and service discovery. Its self-managed service mesh enables scalable, fault-tolerant systems across threads, processes, and devices β with no boilerplate, no fragile wiring.
Areg SDK combines a lightweight C++17 framework, multitarget router, and developer tools for distributed apps.
- Why Areg SDK: Benefits and Comparison
- Getting Started: Build and Integration
- Core Modules and Architecture
- Use Cases: Distributed, RPC and IPC
- Roadmap
- Documentation
- License
- Call to Action
Important
Full technical guidance for building, using, and integrating Areg SDK is available in the documentation.
Areg SDK is a Software Development Kit built around the Areg Framework β a runtime with built-in middleware that automates threading, service discovery, and inter-node messaging, so teams can build distributed systems without boilerplate or fragile wiring. Unlike gRPC, DDS, or ZeroMQ, it provides a self-managed mesh and a unified API across threads, processes, and devices.
Result: scalable, fault-tolerant systems that are faster, simpler, and safer.
-
No manual threading
Threads, components, and watchdogs are auto-created β preventing subtle concurrency bugs and saving time. -
Unified API
Services are called the same way locally or remotely β always async, non-blocking, and consistent. -
Self-managed mesh
Automatic service discovery and routing across threads, processes, and devices β no manual wiring. -
Resilient by design
Components can join or leave dynamically; watchdogs restart failed threads for fault-tolerant systems. -
Built-in observability
Integrated logging and scopes help per-method duration measurement to monitor and optimize efficiently.
π‘ When to use: Linux & Windows, embedded and desktop C++ apps, scaling from prototype to multi-node.
| Feature | Areg SDK | Competitors (gRPC, DDS, ZeroMQ) |
|---|---|---|
| Ease of Use | β Automated setup | |
| Automation | β Codegen, modeling, dispatch | |
| Auto-Discovery | β Self-organizing service mesh | β
DDS: built-in, |
| Fault-Tolerance | β Watchdog & auto-restart | β
DDS: QoS, |
| Request-Reply | β Native Object RPC in service | β
gRPC: RPC, |
| Pub/Sub | β Native, built-in in service | β
DDS: Topics, |
| Built-in Logging | β Integrated, dynamic + viewer | |
| Dev Time Saved | β Faster, via automation |
- Do threading and synchronization issues slow your progress?
- Does debugging across threads, processes, or components take excessive time?
- Is setting up communication across processes or nodes complex and error-prone?
- Do remote failures and reconnections create delays and extra work?
- Would a unified communication model across threads, processes, and devices simplify development?
π‘ If you answer Yes to 3+ questions, Areg SDK is likely a good fit.
- C++17 compiler: GCC, Clang/LLVM, MSVC, or MinGW
- CMake β₯ 3.20
- Java β₯ 17 (required for code generation tools)
Supported OS: Linux, Windows
Supported Hardware: x86, x86_64, ARM, AArch64
See the CMake Configuration Guide for detailed setup, compiler options, and troubleshooting tips.
Clone the repository and build the SDK in one go:
git clone https://github.com/aregtech/areg-sdk.git
cd areg-sdk
cmake -B build
cmake --build build -j 12π‘ Tip: Copy-paste these commands directly in Linux Terminal, Windows CMD, or PowerShell.
Run the pre-built 01_minimalrpc minimal RPC demo to verify the build located in sub-directory:
./product/build/<compiler>/<os>-<hw>-<build-type>-<lib-type>/bin/This π example source demonstrates Multithreaded RPC in a single process:
- Service Consumer runs in one thread
- Service Provider runs in another thread
- Consumer calls the method of remote Provider asynchronously
Message Flow:
π’ main() β π load model β π auto-connect β π€ Consumer request β π¨ Provider prints β β
application exits
- 01_minimalrpc β Minimal RPC between two components
- 02_minimalipc β IPC across processes, requires
mtrouter - 03_helloservice β Multithreaded RPC + IPC example
- More Examples β Advanced SDK features and usage patterns
β οΈ For IPC, ensuremtrouteris running β see mtrouter docs
- CMake FetchContent integration: Guide
- Demo Project: areg-sdk-demo
- Qt Integration & Tools: areg-sdk-tools
π‘ Advanced builds (IDE setup, cross-compilation, disabling tests/examples) β consult Wiki
Areg SDK combines the Areg Framework, Multitarget Router, logging utilities, and development tools.
| Module | Role & Purpose |
|---|---|
Areg Library (areg) |
Core framework + middleware. Automates Object RPC (ORPC), IPC, threading, routing, and fault recovery. |
Code Generator (codegen.jar) |
Build-time tool. Generates code from service APIs to eliminate manual coding and automate RPC. |
Multitarget Router (mtrouter) |
Required for IPC. Routes messages across processes and devices to form a service mesh. |
Log Collector (logcollector) |
Optional developer tool. Aggregates logs from distributed apps for monitoring, debugging, and analysis. |
| Lusan (GUI Tool) | Optional developer tool. Provides visual API design, log inspection, and performance visualization. |
| Examples | Learning & validation. Sample projects that demonstrate Areg in action. |
Areg uses an interface-centric Object RPC (ORPC) model. Applications expose Service Providers and interact via Service Consumers using generated code and the Multitarget Router for inter-process communication. Services, as logical micro-servers independent of physical locations, enable a service-oriented architecture (SOA).
Areg supports both ClientβServer (RequestβReply) and PublishβSubscribe (Pub/Sub) patterns, optimized for multithreading, multiprocessing, and distributed systems with low-latency requirements.
areg+codegen.jarβ build services and projectsmtrouterβ IPC and distributed communication- Other tools β logging and development utilities
- Key strengths β automates service communication, manages threading & IPC, enables distributed apps
Edge devices often stream raw data to central servers, which can increase latency, network load, and privacy risks. With Areg, services run on devices, forming a mist network of micro-servers that process and aggregate data locally.
Benefit: Low-latency, autonomous edge mesh; sensitive data remains on-device; reduced cloud traffic.
Many small devices lack scalable infrastructure. Areg transforms embedded applications into distributed modules that scale across remote nodes and platforms, orchestrating multithreaded and multiprocess C++ services.
- Local Services β multithreaded within a device
- Public Services β accessible across processes and applications
Benefit: Seamlessly expose services to other apps and devices without modifying code.
Device drivers are often slow, complex, and platform-specific. Areg lets you expose hardware as portable, service-enabled components, making devices platform-independent.
Benefit: Accelerates prototyping, testing, and development; enables early bug detection; devices are network-accessible.
Integrating AI into embedded and edge systems often requires managing concurrency, communication, and synchronization across multiple modules β data collection, preprocessing, inference, decision, monitoring, and connectivity. Areg SDK simplifies this by letting each AI stage run as an independent service in its own thread or process, with built-in event-driven communication.
Benefit: Modular AI pipelines without manual threading or message handling; real-time responsiveness for control tasks; scalable orchestration of distributed AI workloads across devices.
Validating distributed systems is expensive and hardware-dependent. Areg allows simulation of Data Layer services in external applications, providing realistic environments to test behavior, performance, and fault-tolerance. Services appear location-transparent to higher layers.
Benefit: Transparent service location enables testing of higher-layer logic without real hardware dependencies.
Areg SDK continues to evolve for Desktop and Embedded, focusing on automation, reliability, and performance.
Planned work:
- Multi-channel support for multiplexed communications
- RTOS support (Zephyr OS) to bring Areg into real-time environments
- Lusan app improvements: performance, stability, and usability (Areg SDK Tools)
- Installation and Build β cross-platform builds, toolchains, CMake integration for embedded and desktop targets
- Build Options and Integrations β FetchContent, packaging, and embedding Areg as a library
- Development Tools β code generation for service-oriented development
- Logging and Monitoring β logcollector and logobserver usage
- Networking and Communication β Multitarget router for IPC and low-latency messaging
- Persistence β for local data storage in a text file
- Troubleshooting β common issues and recommended solutions
- Examples and Tests β catalog of sample projects (RPC, IPC, Pub/Sub, FSM, and more)
- HOWTO Guide β practical reference.
Areg SDK is released under the Apache License 2.0 β permissive and suitable for open-source and commercial use.
Commercial licensing & services: Dedicated support, training, and tailored licensing options are available for enterprise customers. Visit Aregtech or email info[at]areg[dot]tech for details.
π Join the Areg SDK community and help shape the future of distributed C++ apps:
- π οΈ Contribute to open issues
Before contributing, please review the Contributor License Agreement (CLA) β it must be accepted in each pull request and ensures smooth collaboration for everyone. - π‘ Share ideas or request features via issues or discussions
- π Submit pull requests (see contribution guidelines)
- β Liked Areg SDK? Give it a star β it helps others discover the project and supports its growth
- π Weβre collecting early adopters! Show your project
Areg SDK gets dozens of unique daily clones β join the growing community of developers exploring it early.
Your project might be featured on the official Areg SDK website!





