https://github.com/aregtech/areg-sdk-tools
Lusan: Control Plane for Designing and Debugging AREG-Based Distributed Systems
https://github.com/aregtech/areg-sdk-tools
areg-sdk code-generation cross-platform-gui developer-tools ipc log-analyzer log-viewer logging qt rpc service-design tooling visual-interface
Last synced: 24 days ago
JSON representation
Lusan: Control Plane for Designing and Debugging AREG-Based Distributed Systems
- Host: GitHub
- URL: https://github.com/aregtech/areg-sdk-tools
- Owner: aregtech
- License: mit
- Created: 2022-11-27T10:01:14.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-12-27T12:44:41.000Z (about 2 months ago)
- Last Synced: 2025-12-29T07:38:31.953Z (about 2 months ago)
- Topics: areg-sdk, code-generation, cross-platform-gui, developer-tools, ipc, log-analyzer, log-viewer, logging, qt, rpc, service-design, tooling, visual-interface
- Language: C++
- Homepage: https://www.areg.tech
- Size: 6.15 MB
- Stars: 20
- Watchers: 3
- Forks: 4
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Areg SDK Tools: *Lusan Application*
Lusan is the official UI toolset for the [Areg SDK](https://github.com/aregtech/areg-sdk).
It is the primary development and diagnostics companion for building, debugging, and operating Areg-based distributed applications.
Areg is interface-centric by design. Lusan turns that model into a **concrete, visual, and controllable workflow** โ from interface definition to runtime diagnostics.
---
## Why Lusan Is Essential
Areg-based applications are inherently **distributed, multi-threaded, and multi-process**, often running across multiple machines.
In such systems:
- Service interfaces define **runtime behavior**, not just APIs.
- Bugs are often **timing-dependent**, sometimes **non-reproducible** and **invisible** to traditional debuggers.
- Logs from a single process are meaningless without system-wide context.
**Lusan exists because developing Areg applications without it is inefficient, fragile, and error-prone.**
Lusan provides a unified visual workspace where developers can:
- **Design and reason about service interfaces before writing code**
- **Observe and control logging across multiple running processes and machines**
- **Analyze offline logs to debug failures and measure real performance**
Even when used *only* for logging, **Lusan still requires integration of the Areg library**.
This is intentional: Aregโs logging system is tightly coupled with its runtime model and enables capabilities that generic log viewers cannot provide.
๐ก **Use Lusan when:** developing or debugging any Areg-based system on Linux or Windows
โ ๏ธ **Do not use Lusan when:** working with non-Areg applications
> [!NOTE]
> Lusan is **not a general-purpose log viewer**. It relies on the Areg SDKโs built-in logging system. If your application does not use Aregโs communication engine, you must still integrate the Areg library and enable logging (while disabling unused features) to use Lusan.
> **Example** of integrating Areg logging without using other Areg features: [**Areg Logging Only Example**](https://github.com/aregtech/areg-sdk/blob/master/examples/07_logging/src/main.cpp).
---
## Key Features
### 1. Visual Service Interface Designer
- Create and edit Areg service interface definition files
- Visualize **data types, requests, responses, broadcasts, and attributes**
- Validate interface consistency before code generation
**This eliminates manual interface maintenance and prevents structural errors early.**
---
### 2. Multi-Instance Real-Time Log Viewer & Analyzer
- **Real-time log aggregation** from multiple processes and machines
- **Runtime filtering by scope, priority, module, and source**
- Dynamic log-level control applied *on target processes*
- Designed for debugging **concurrent and distributed execution flows**
**Logs are filtered at the source, not after the fact.**
---
### 3. Offline Log Viewer & Performance Analyzer
- Open and inspect saved `.sqlog` files
- Apply advanced filters and text search
- Measure execution timing and performance characteristics
- Analyze failures that cannot be reproduced live
---
### 4. Live Log Collector Integration
To enable live logging:
- Applications must be built with the **Areg library** with enabled logging (see example [**logging**](https://github.com/aregtech/areg-sdk/blob/master/examples/07_logging/src/main.cpp) of Areg SDK)
- A `logcollector` process of Areg SDK must be running (console or system service)
- A `lusan.init` file defines how Lusan connects to the collector
- Target processes use `areg.init` to define initial logging scopes and priorities
Once `logcollector` is available and `lusan` is connected:
- Lusan immediately receives logs from all connected processes
- Developers can dynamically change logging scopes and priorities
- Changes can be persisted back into `areg.init` for future runs
This enables **system-wide logging control without restarting applications**.
---
## Getting the Sources
Lusan is built with **Qt 6.x**.
Create a directory (any name)
```bash
mkdir areg-sdk-tools
cd areg-sdk-tools
```
Clone the repository
```bash
git clone https://github.com/aregtech/areg-sdk-tools.git .
````
---
## Build Instructions
### Requirements
* **Qt 6.x**
* **QtCreator 15+**
* **CMake 3.20+**
* **Compilers:** MSVC, GCC, Clang, MinGW
### Build with QtCreator
1. Open `areg-sdk-tools` in **QtCreator**
2. Select a Qt 6.x Kit
3. Configure CMake
4. Build the project
> [!NOTE]
> Command-line and advanced build workflows will be documented separately.
---
## Included Tools
* **Service Interface Designer**
Visual design and validation of Areg service interfaces
* **Multi-Instance Real-Time Log Viewer & Analyzer**
Live log streaming, filtering, and runtime control
* **Multi-Instance Offline Log Viewer & Analyzer**
Load `.sqlog` files, analyze failures, and measure performance
---
## License
The sources of Lusan are released under the **MIT License**. It uses sources of Areg SDK, which are released under the **Apache License 2.0**.
You are free to use, modify, and distribute the software in accordance with the license terms.
---
## Call to Action
* ๐ **Found a bug?** Open an issue.
* ๐ก **Have an idea?** Start a discussion.
* ๐ง **Want to contribute?** Pick an unassigned issue and leave a short comment before starting.
* ๐ **Building with Areg?** Use Lusan โ it is the fastest way to stay in control of your system.
* ๐ **Liked Lusan or Areg SDK project?** Star [Areg SDK](https://github.com/aregtech/areg-sdk/) and [Lusan](https://github.com/aregtech/areg-sdk-tools/) to help us to increase the community.
Contributions and feedback are welcome and highly appreciated.