{"id":40172368,"url":"https://github.com/aregtech/areg-sdk-demo","last_synced_at":"2026-01-19T17:07:40.768Z","repository":{"id":171674801,"uuid":"647179660","full_name":"aregtech/areg-sdk-demo","owner":"aregtech","description":"This repository demonstrates the integration of AREG framework in the projects.","archived":false,"fork":false,"pushed_at":"2025-10-26T00:24:47.000Z","size":895,"stargazers_count":10,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T02:35:38.940Z","etag":null,"topics":["areg-sdk","async","client-server","cpp","demo","demos","example","examples","ipc","linux","multiprocessing","multithreading","pubsub","rpc","sdk","windows"],"latest_commit_sha":null,"homepage":"","language":"CMake","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":null,"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":"2023-05-30T08:22:57.000Z","updated_at":"2025-09-28T23:08:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"6595144a-fc7f-4093-92f7-9cba0a56a75d","html_url":"https://github.com/aregtech/areg-sdk-demo","commit_stats":null,"previous_names":["aregtech/areg-sdk-demo"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/aregtech/areg-sdk-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aregtech","download_url":"https://codeload.github.com/aregtech/areg-sdk-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aregtech%2Fareg-sdk-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28577231,"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","async","client-server","cpp","demo","demos","example","examples","ipc","linux","multiprocessing","multithreading","pubsub","rpc","sdk","windows"],"created_at":"2026-01-19T17:07:40.075Z","updated_at":"2026-01-19T17:07:40.752Z","avatar_url":"https://github.com/aregtech.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Areg SDK Demo Project\n\n## Repository Status\n\nThis project demonstrates how to integrate and use the Areg SDK for various purposes. The current build status is shown below:\n\n[![CMake](https://github.com/aregtech/areg-sdk-demo/actions/workflows/cmake.yml/badge.svg?branch=master)](https://github.com/aregtech/areg-sdk-demo/actions/workflows/cmake.yml)\n[![MSBuild](https://github.com/aregtech/areg-sdk-demo/actions/workflows/msbuild.yml/badge.svg?branch=master)](https://github.com/aregtech/areg-sdk-demo/actions/workflows/msbuild.yml)\n[![CodeQL](https://github.com/aregtech/areg-sdk-demo/actions/workflows/codeql.yml/badge.svg)](https://github.com/aregtech/areg-sdk-demo/actions/workflows/codeql.yml)\n\n---\n\n# Table of Contents\n\n- [Introduction](#introduction)\n- [System Requirements](#system-requirements)\n  - [General Requirements](#general-requirements)\n  - [Platform-Specific Requirements](#platform-specific-requirements)\n- [Integration Methods](#integration-methods)\n  - [Method 1: Integrate by Fetching Areg SDK Source Code](#method-1-integrate-by-fetching-areg-sdk-source-code)\n  - [Method 2: Integrate via Areg SDK Package (vcpkg)](#method-2-integrate-via-areg-sdk-package-vcpkg)\n  - [Method 3: Integrate Areg SDK as a Git Submodule](#method-3-integrate-areg-sdk-as-a-git-submodule)\n- [Advanced Features](#advanced-features)\n- [Building the Areg SDK Demo Project](#building-the-areg-sdk-demo-project)\n- [Demo Applications](#demo-applications)\n- [Contribution Guidelines](#contribution-guidelines)\n- [License](#license)\n- [Issues and Feedback](#issues-and-feedback)\n\n---\n\n## Introduction\n\nThe **Areg SDK Demo Project** provides a practical example and template for developers to create new projects using the [Areg SDK](https://github.com/aregtech/areg-sdk/) or integrating it into existing projects.\n\nThis demo showcases three primary ways to integrate Areg SDK into your project:\n\n1. **Fetching source code using CMake** — directly fetch Areg SDK source files and build them alongside your project.  \n2. **Using pre-built vcpkg packages** — integrate the Areg SDK as a package via CMake and vcpkg.  \n3. **Adding Areg SDK as a Git submodule** — integrate Areg SDK into your project to work with MSBuild and/or CMake.\n\nEach method is described in detail below.\n\n---\n\n## System Requirements\n\n### General Requirements\nEnsure your system includes the following:\n\n- **Git** for repository cloning.  \n- **Java 17+** for code generation tools.  \n- **Compilers**: GNU or LLVM (Linux); MSVC or Clang (Windows). Must support **C++17** or newer.  \n- **Build Tools**: CMake 3.20+ or Microsoft Visual Studio 2019+.  \n\n### Platform-Specific Requirements\n\n- **Linux**: Install **ncurses** if you want to compile with extended objects.  \n- **Windows**: Requires Microsoft Visual C++, including **CMake**, **Clang for Windows**, and **MFC** for GUI examples.  \n- **Optional Libraries**:  \n  - **Google Test (GTest)** for unit tests (or let Areg SDK build it from sources).  \n  - **SQLite3** (or let Areg SDK build from sources).  \n\n---\n\n## Integration Methods\n\n### Method 1: Integrate by Fetching Areg SDK Source Code\n\nModify your project’s `CMakeLists.txt` to include:\n\n```cmake\ninclude(FetchContent)\nFetchContent_Declare(\n  areg-sdk\n  GIT_REPOSITORY https://github.com/aregtech/areg-sdk.git\n  GIT_TAG \"master\"\n)\nFetchContent_MakeAvailable(areg-sdk)\n\n# Set the root directory of the fetched Areg SDK\nset(AREG_SDK_ROOT \"${areg-sdk_SOURCE_DIR}\")\ninclude_directories(${AREG_SDK_ROOT}/framework)\n````\n\nOnce fetched, you can use the Areg SDK libraries via the `areg::` namespace:\n\n* `areg::areg` — core framework library\n* `areg::aregextend` — extended objects\n* `areg::areglogger` — logging client API\n\nThis method also gives access to the **code generator (`codegen`)**, **multicast router (`mcrouter`)**, and **logging services (`logger`)**.\n\n---\n\n### Method 2: Integrate via Areg SDK Package (vcpkg)\n\n\u003e [!IMPORTANT]\n\u003e Areg SDK is prepared and tested as a `vcpkg` package. It is expected to be included in the upcoming version 2.0.0.\n\nSteps:\n\n1. Clone, build, and install vcpkg (see [vcpkg repo](https://github.com/microsoft/vcpkg)).\n2. Install the Areg SDK package:\n\n**Windows (64-bit):**\n\n```bash\nvcpkg install areg:x64-windows\n```\n\n**Linux (64-bit):**\n\n```bash\nvcpkg install areg:x64-linux\n```\n\n3. Integrate vcpkg into your project:\n\n```bash\nvcpkg integrate install\n```\n\n4. Update `CMakeLists.txt`:\n\n```cmake\nfind_package(areg CONFIG REQUIRED)\ninclude_directories(${AREG_FRAMEWORK})\n```\n\nCompile with:\n\n```bash\ncmake -B ./build -DCMAKE_TOOLCHAIN_FILE=\u003cvcpkg-root\u003e/scripts/buildsystems/vcpkg.cmake\n```\n\nThis method offers a modular approach to using the Areg SDK.\n\n---\n\n### Method 3: Integrate Areg SDK as a Git Submodule\n\nAdd Areg SDK as a submodule (useful for Visual Studio):\n\n```txt\n[submodule \"thirdparty/areg-sdk\"]\n  path = thirdparty/areg-sdk\n  url = https://github.com/aregtech/areg-sdk.git\n```\n\nInitialize:\n\n```bash\ngit submodule update --init --recursive\ngit submodule update --remote --recursive\n```\n\nUpdate `CMakeLists.txt`:\n\n```cmake\nset(AREG_SDK_ROOT \"${CMAKE_SOURCE_DIR}/thirdparty/areg-sdk\")\ninclude(\"${AREG_SDK_ROOT}/CMakeLists.txt\")\n```\n\nThis allows direct inclusion of Areg SDK projects in Visual Studio solutions.\n\n---\n\n## Advanced Features\n\nThe Areg SDK can be integrated **before or after** the first `project()` call in CMake, enabling flexible customization (e.g., compiler choice, shared/static libraries, logging, advanced objects).\n\nThis demo includes an option `INTEGRATE_AREG_BEFORE_PROJECT`. Set it to `TRUE` or `FALSE` to experiment with both approaches.\n\nFor more customization, include [areg.cmake](https://github.com/aregtech/areg-sdk/blob/master/conf/cmake/areg.cmake) and check [user.cmake](https://github.com/aregtech/areg-sdk/blob/master/conf/cmake/user.cmake).\n\nYou can include via:\n\n```cmake\ninclude(\"${AREG_CMAKE_CONFIG_DIR}/areg.cmake\")\n```\n\nor (for vcpkg integration):\n\n```cmake\ninclude(\"${AREG_CMAKE_EXPORTS}\")\n```\n\n---\n\n## Building the Areg SDK Demo Project\n\nEnsure:\n\n1. CMake 3.20+\n2. Java 17+\n3. C++17+ compiler\n\n**Clone the repo:**\n\n```bash\ngit clone https://github.com/aregtech/areg-sdk-demo.git\n```\n\n**Build (fetching Areg SDK sources):**\n\n```bash\ncmake -B ./build\ncmake --build ./build\n```\n\n**Build (Areg SDK via vcpkg):**\n\n```bash\ncmake -B ./build -DCMAKE_TOOLCHAIN_FILE=\u003cvcpkg-root\u003e/scripts/buildsystems/vcpkg.cmake\ncmake --build ./build\n```\n\n**Build with Visual Studio:**\n\nOpen `areg-sdk-demo.sln` and compile.\n\n\u003e [!IMPORTANT]\n\u003e For Visual Studio builds, clone with submodules:\n\u003e\n\u003e ```bash\n\u003e git clone --recurse-submodules https://github.com/aregtech/areg-sdk-demo.git\n\u003e ```\n\n---\n\n## Demo Applications\n\nLocated in `./demo/`.\nThey are adapted from [Areg SDK examples](https://github.com/aregtech/areg-sdk/tree/master/examples).\nYou can explore, modify, or add new demos.\n\n---\n\n## Contribution Guidelines\n\nContributions are welcome! You can:\n\n* Add new example projects\n* Provide configuration/build examples\n* Create CI/CD workflows\n\nTo contribute:\n\n1. Fork the repo.\n2. Make your changes.\n3. Ensure compatibility (CMake, Visual Studio, GCC, MSVC, Clang).\n4. Open a Pull Request with details.\n\n---\n\n## License\n\nLicensed under the [MIT License](https://github.com/aregtech/areg-sdk-demo/blob/main/LICENSE).\nFree for personal and commercial use.\n\n---\n\n## Issues and Feedback\n\nFor bugs or feature requests, open an issue in the [Issues](https://github.com/aregtech/areg-sdk-demo/issues) section.\nYour feedback is appreciated!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faregtech%2Fareg-sdk-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faregtech%2Fareg-sdk-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faregtech%2Fareg-sdk-demo/lists"}