{"id":40172544,"url":"https://github.com/aregtech/areg-sdk-tools","last_synced_at":"2026-01-19T17:08:02.526Z","repository":{"id":122956703,"uuid":"571142418","full_name":"aregtech/areg-sdk-tools","owner":"aregtech","description":"Lusan: Control Plane for Designing and Debugging AREG-Based Distributed Systems","archived":false,"fork":false,"pushed_at":"2025-12-27T12:44:41.000Z","size":6451,"stargazers_count":20,"open_issues_count":19,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-12-29T07:38:31.953Z","etag":null,"topics":["areg-sdk","code-generation","cross-platform-gui","developer-tools","ipc","log-analyzer","log-viewer","logging","qt","rpc","service-design","tooling","visual-interface"],"latest_commit_sha":null,"homepage":"https://www.areg.tech","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aregtech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-27T10:01:14.000Z","updated_at":"2025-12-27T12:43:33.000Z","dependencies_parsed_at":"2024-02-24T20:31:13.396Z","dependency_job_id":"f128126b-80a4-49e5-ab0e-c8ca3551714b","html_url":"https://github.com/aregtech/areg-sdk-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aregtech/areg-sdk-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aregtech","download_url":"https://codeload.github.com/aregtech/areg-sdk-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28577239,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T16:29:19.148Z","status":"ssl_error","status_checked_at":"2026-01-19T16:29:17.772Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["areg-sdk","code-generation","cross-platform-gui","developer-tools","ipc","log-analyzer","log-viewer","logging","qt","rpc","service-design","tooling","visual-interface"],"created_at":"2026-01-19T17:08:02.036Z","updated_at":"2026-01-19T17:08:02.517Z","avatar_url":"https://github.com/aregtech.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Areg SDK Tools: *Lusan Application*\n\nLusan is the official UI toolset for the [Areg SDK](https://github.com/aregtech/areg-sdk).  \nIt is the primary development and diagnostics companion for building, debugging, and operating Areg-based distributed applications.\n\nAreg is interface-centric by design. Lusan turns that model into a **concrete, visual, and controllable workflow** — from interface definition to runtime diagnostics.\n\n---\n\n## Why Lusan Is Essential\n\nAreg-based applications are inherently **distributed, multi-threaded, and multi-process**, often running across multiple machines.  \nIn such systems:\n\n- Service interfaces define **runtime behavior**, not just APIs.\n- Bugs are often **timing-dependent**, sometimes **non-reproducible** and **invisible** to traditional debuggers.\n- Logs from a single process are meaningless without system-wide context.\n\n**Lusan exists because developing Areg applications without it is inefficient, fragile, and error-prone.**\n\nLusan provides a unified visual workspace where developers can:\n\n- **Design and reason about service interfaces before writing code**\n- **Observe and control logging across multiple running processes and machines**\n- **Analyze offline logs to debug failures and measure real performance**\n\nEven when used *only* for logging, **Lusan still requires integration of the Areg library**.  \nThis is intentional: Areg’s logging system is tightly coupled with its runtime model and enables capabilities that generic log viewers cannot provide.\n\n💡 **Use Lusan when:** developing or debugging any Areg-based system on Linux or Windows  \n⚠️ **Do not use Lusan when:** working with non-Areg applications\n\n\u003e [!NOTE]\n\u003e 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.  \n\u003e **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).\n\n---\n\n## Key Features\n\n### 1. Visual Service Interface Designer\n\n- Create and edit Areg service interface definition files\n- Visualize **data types, requests, responses, broadcasts, and attributes**\n- Validate interface consistency before code generation\n\n**This eliminates manual interface maintenance and prevents structural errors early.**\n\n---\n\n### 2. Multi-Instance Real-Time Log Viewer \u0026 Analyzer\n\n- **Real-time log aggregation** from multiple processes and machines\n- **Runtime filtering by scope, priority, module, and source**\n- Dynamic log-level control applied *on target processes*\n- Designed for debugging **concurrent and distributed execution flows**\n\n**Logs are filtered at the source, not after the fact.**\n\n---\n\n### 3. Offline Log Viewer \u0026 Performance Analyzer\n\n- Open and inspect saved `.sqlog` files\n- Apply advanced filters and text search\n- Measure execution timing and performance characteristics\n- Analyze failures that cannot be reproduced live\n\n---\n\n### 4. Live Log Collector Integration\n\nTo enable live logging:\n\n- 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)\n- A `logcollector` process of Areg SDK must be running (console or system service)\n- A `lusan.init` file defines how Lusan connects to the collector\n- Target processes use `areg.init` to define initial logging scopes and priorities\n\nOnce `logcollector` is available and `lusan` is connected:\n\n- Lusan immediately receives logs from all connected processes\n- Developers can dynamically change logging scopes and priorities\n- Changes can be persisted back into `areg.init` for future runs\n\nThis enables **system-wide logging control without restarting applications**.\n\n---\n\n## Getting the Sources\n\nLusan is built with **Qt 6.x**.\n\nCreate a directory (any name)  \n```bash\nmkdir areg-sdk-tools\ncd areg-sdk-tools\n```\n\nClone the repository\n```bash\ngit clone https://github.com/aregtech/areg-sdk-tools.git .\n````\n\n---\n\n## Build Instructions\n\n### Requirements\n\n* **Qt 6.x**\n* **QtCreator 15+**\n* **CMake 3.20+**\n* **Compilers:** MSVC, GCC, Clang, MinGW\n\n### Build with QtCreator\n\n1. Open `areg-sdk-tools` in **QtCreator**\n2. Select a Qt 6.x Kit\n3. Configure CMake\n4. Build the project\n\n\u003e [!NOTE]\n\u003e Command-line and advanced build workflows will be documented separately.\n\n---\n\n## Included Tools\n\n* **Service Interface Designer**\n  Visual design and validation of Areg service interfaces\n\n* **Multi-Instance Real-Time Log Viewer \u0026 Analyzer**\n  Live log streaming, filtering, and runtime control\n\n* **Multi-Instance Offline Log Viewer \u0026 Analyzer**\n  Load `.sqlog` files, analyze failures, and measure performance\n\n---\n\n## License\n\nThe sources of Lusan are released under the **MIT License**. It uses sources of Areg SDK, which are released under the **Apache License 2.0**. \nYou are free to use, modify, and distribute the software in accordance with the license terms.\n\n---\n\n## Call to Action\n\n* 🐞 **Found a bug?** Open an issue.\n* 💡 **Have an idea?** Start a discussion.\n* 🔧 **Want to contribute?** Pick an unassigned issue and leave a short comment before starting.\n* 🚀 **Building with Areg?** Use Lusan — it is the fastest way to stay in control of your system.\n* 🌟 **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.\n\nContributions and feedback are welcome and highly appreciated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faregtech%2Fareg-sdk-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faregtech%2Fareg-sdk-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faregtech%2Fareg-sdk-tools/lists"}