{"id":23480273,"url":"https://github.com/aui-framework/aui","last_synced_at":"2025-10-09T00:47:21.209Z","repository":{"id":37425344,"uuid":"326901807","full_name":"aui-framework/aui","owner":"aui-framework","description":"Declarative UI toolkit for modern C++20","archived":false,"fork":false,"pushed_at":"2025-10-02T11:29:29.000Z","size":60490,"stargazers_count":436,"open_issues_count":96,"forks_count":37,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-10-02T13:30:21.435Z","etag":null,"topics":["c-plus-plus","c-plus-plus-20","cmake","cross-platform-gui","desktop","framework","gui-framework","gui-toolkit","opengl","toolkit"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aui-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2021-01-05T05:59:01.000Z","updated_at":"2025-10-02T10:18:20.000Z","dependencies_parsed_at":"2023-02-18T20:15:39.578Z","dependency_job_id":"7b5f28f4-1fc3-4be4-ae33-b872941f689d","html_url":"https://github.com/aui-framework/aui","commit_stats":null,"previous_names":[],"tags_count":111,"template":false,"template_full_name":null,"purl":"pkg:github/aui-framework/aui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aui-framework%2Faui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aui-framework%2Faui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aui-framework%2Faui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aui-framework%2Faui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aui-framework","download_url":"https://codeload.github.com/aui-framework/aui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aui-framework%2Faui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000642,"owners_count":26082879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["c-plus-plus","c-plus-plus-20","cmake","cross-platform-gui","desktop","framework","gui-framework","gui-toolkit","opengl","toolkit"],"created_at":"2024-12-24T20:00:54.533Z","updated_at":"2025-10-09T00:47:21.203Z","avatar_url":"https://github.com/aui-framework.png","language":"C++","readme":"# AUI (Advanced Universal Interface)\n![build badge](https://github.com/aui-framework/aui/actions/workflows/build.yml/badge.svg)\n[![discord badge](https://dcbadge.limes.pink/api/server/https://discord.gg/jq2WySpg6m?style=flat)](https://discord.gg/jq2WySpg6m)\n\n![logo](https://raw.githubusercontent.com/aui-framework/aui/master/logo.svg)\n\nCross-platform high performance efficient module-based framework for developing and deploying hardware accelerated graphical desktop applications\nusing modern C++20.\n\nThe project is inspired by Qt and aims to provide developers with the best possible experience (including, but not limited\nto: dependency management, packaging, ui building, styling, debugger visualizing) with pure C++, without custom\nprogramming languages and external compilers.\n\n[Documentation](https://aui-framework.github.io) | [Examples](https://aui-framework.github.io/master/examples.html) | [Getting started](https://aui-framework.github.io/master/md_docs_2Getting_01started_01with_01AUI.html) | [Roadmap](https://github.com/orgs/aui-framework/projects/3/views/1) | [News](https://github.com/aui-framework/aui/discussions/categories/announcements) | [Discussions](https://github.com/aui-framework/aui/discussions)\n\n# Quickstart\n\n## Linux dependencies\n\nIf you are using Linux, install following dependencies:\n\n### Ubuntu\n```bash\nsudo apt install pkg-config libfontconfig-dev libxcursor-dev libxi-dev libxrandr-dev libglew-dev libstdc++-static libpulse-dev libdbus-1-dev\n```\n\n### Fedora\n```bash\nsudo dnf install fontconfig-devel libXi libglvnd-devel libstdc++-static glew-devel pulseaudio-libs-devel\n```\n\n## AUI App Template ⚡\n\nUse our setup-free repository templates for quick start:\n\n1. [Minimal UI](https://github.com/aui-framework/example_minimal_ui) - an absolute minimum to start a graphical UI application, without any boilerplate.\n2. [Minimal UI with assets](https://github.com/aui-framework/example_assets_ui) - same as above but with assets.\n3. [Full-fledged App Template](https://aui-framework.github.io/master/example_app_template.html) - a complete template to create a GitHub-hosted app project with CI/CD building,\n   testing, releasing, auto updating, code quality checking and more.\n\n## Integrating AUI to existing CMake project\n\nTo link AUI to your project, use the following CMake script. This script is self sufficient and does not require additional setup, AUI is imported to your project thanks to\n[AUI.Boot](https://aui-framework.github.io/master/md_docs_2AUI_01Boot.html).\n\n`CMakeLists.txt`:\n```cmake\n# Standard routine\ncmake_minimum_required(VERSION 3.16)\nproject(aui_app)\n\nset(AUI_VERSION v7.0.1)\n\n# Use AUI.Boot\nfile(\n        DOWNLOAD\n        https://raw.githubusercontent.com/aui-framework/aui/${AUI_VERSION}/aui.boot.cmake\n        ${CMAKE_CURRENT_BINARY_DIR}/aui.boot.cmake)\ninclude(${CMAKE_CURRENT_BINARY_DIR}/aui.boot.cmake)\n\n# import AUI\nauib_import(aui https://github.com/aui-framework/aui\n        COMPONENTS core views\n        VERSION ${AUI_VERSION})\n\n\n# Create the executable. This function automatically links all sources from the src/ folder,\n# creates CMake target and places the resulting executable to bin/ folder.\naui_executable(${PROJECT_NAME})\n\n# Link required libs\naui_link(${PROJECT_NAME} PRIVATE aui::core aui::views)\n```\n\n`src/main.cpp`:\n```cpp\n#include \u003cAUI/Platform/Entry.h\u003e\n#include \u003cAUI/Platform/AWindow.h\u003e\n#include \u003cAUI/Util/UIBuildingHelpers.h\u003e\n#include \u003cAUI/View/ALabel.h\u003e\n#include \u003cAUI/View/AButton.h\u003e\n#include \u003cAUI/Platform/APlatform.h\u003e\n\nusing namespace declarative;\n\nAUI_ENTRY {\n    auto w = _new\u003cAWindow\u003e(\"Window title\", 300_dp, 200_dp);\n    w-\u003esetContents(Centered {\n      Vertical {\n        Centered { Label { \"Hello world from AUI!\" } },\n        Centered {\n          Button { \"Visit GitHub page\" }.clicked(w, [] {\n              APlatform::openUrl(\"https://github.com/aui-framework/aui\");\n          }),\n        },\n      },\n    });\n    w-\u003eshow();\n    return 0;\n}\n```\n\nResult:\n\n![Example window](https://github.com/aui-framework/aui/blob/develop/docs/imgs/Screenshot_20241218_144940.png?raw=true)\n\n\nVisit [layout building page](https://aui-framework.github.io/master/group__layout__managers.html) and our [introduction\nguide](https://aui-framework.github.io/master/md_docs_2Getting_01started_01with_01AUI.html) for more info.\n\nOptionally, you can use one of [our IDE plugins](https://aui-framework.github.io/master/md_docs_2IDE_01Plugins.html) to set up the project.\n\n# Key features\n- Extended common types (containers, strings, streams, etc...)\n- Graphical User Interfaces, including framework tools for fast declarative UI producing using modern C++ capabilities\n- Resource compiler (assets)\n- Internationalization (i18n)\n- DPI support\n- CMake deployment scripts\n- Model binding\n- Encryption\n- IO streams\n- Networking, including http(s) requests\n- Both asynchronous and synchronous application architecture support\n\n## Module list\n- `aui.core` - basic types (containers, strings, streams, etc...)\n- `aui.crypt` - wrapper around OpenSSL for encryption functionality\n- `aui.curl` - wrapper around libcurl for http/https requests\n- `aui.image` - popular image format loader \n- `aui.json` - JSON parser\n- `aui.network` - networking\n- `aui.toolbox` - resource compiler\n- `aui.uitests` - UI testing based on GTest\n- `aui.views` - UI toolkit\n- `aui.xml` - XML parser\n\n## Feature support\n - `-` equals unsupported\n - `?` equals planned\n - `+` equals almost completely supported\n - `#` equals fully supported\n\n| Feature or module | Windows Vista+ | Windows XP | Linux | Android | MacOS | iOS |\n|-------------------|----------------|------------|-------|---------|-------|-----|\n| aui.core          | #              |     #      |   #   |    #    |   #   |  #  |\n| aui.crypt         | #              |     #      |   #   |    #    |   #   |  #  |\n| aui.curl          | #              |     #      |   #   |    #    |   #   |  #  |\n| aui.image         | #              |     #      |   #   |    #    |   #   |  #  |\n| aui.json          | #              |     #      |   #   |    #    |   #   |  #  |\n| aui.network       | #              |     #      |   #   |    #    |   +   |  +  |\n| aui.toolbox       | #              |     #      |   #   |    -    |   #   |  -  |\n| aui.views         | #              |     ?      |   +   |    +    |   +   |  +  |\n| aui.xml           | #              |     #      |   #   |    #    |   #   |  #  |\n| Assets            | #              |     #      |   #   |    #    |   +   |  +  |\n| Filesystem        | #              |     #      |   #   |    #    |   +   |  +  |\n| Process creation  | #              |     #      |   #   |    -    |   ?   |  -  |\n\n| Compiler                     | Support       |\n|------------------------------|---------------|\n| MSVC 19+ (Visual Studio 20+) | Full          |\n| gcc (8+)                     | Full          |\n| MinGW (8+)                   | Won't compile |\n| Cross-compile MinGW          | Won't compile |\n| clang                        | Full          |\n\n## Used libraries\n- [libcurl](https://curl.se/) for http/https requests\n- [OpenSSL](https://github.com/openssl/openssl) for encryption\n- `OpenGL` as graphics hardware acceleration backend\n- [glm](https://github.com/g-truc/glm) for linear algebra\n- [stbimage](https://github.com/nothings/stb) for image loading\n- [freetype2](https://github.com/freetype/freetype) for font rendering\n- [LunaSVG](https://github.com/sammycage/lunasvg) for SVG rendering\n- [GTest](https://github.com/google/googletest) for unit testing\n- [Google Benchmark](https://github.com/google/benchmark) for benchmark testing\n\n## IDE Plugins\n\n[Refer to documentation page](https://aui-framework.github.io/master/md_docs_2IDE_01Plugins.html)\n\n## Projects using AUI\n\n- [AUI Telegram Client](https://github.com/aui-framework/telegram_client)\n  ![AUI Telegram Client](https://github.com/aui-framework/telegram_client/blob/f985af77711be2b17b6aab11bfafb2a864800a1e/demo/demo.jpg?raw=true)\n- [Magicsea Online](https://magicseaonline.com/)\n  ![Magicsea Online](https://github.com/aui-framework/aui/blob/develop/docs/imgs/owrfuihw34iosdfjnfj.jpg?raw=true)\n- [Amplitude Studio](https://studio.amplitudeaudiosdk.com)\n  ![Amplitude Studio](https://github.com/aui-framework/aui/blob/develop/docs/imgs/2njkb4fhjkcbjkw.jpg?raw=true)\n\n## Examples\n\nCheck the [examples](https://aui-framework.github.io/master/examples.html) page in our\n[docs](https://aui-framework.github.io) or [examples/](https://github.com/aui-framework/aui/tree/master/examples) dir in\nour repo.\n\n![Fractal](https://github.com/user-attachments/assets/6c67cfb2-adba-42e9-9201-0b87b2dbb3b8)\n\n![Views](https://github.com/user-attachments/assets/f0071fe4-c7d4-4d02-b677-2c02be51edd1)\n\n![Minesweeper](https://github.com/user-attachments/assets/3299da4c-6ae3-4be8-9714-f01622a38fb2)\n\n\n# Licensing\n\nPlease refer to [LICENSE](https://github.com/aui-framework/aui/blob/master/LICENSE).\n\nOur project is published under Mozilla Public License Version 2.0 (the License). In short, you can use AUI for free in\nyour private (i.e, that does not go outside your company) projects.\n\nIf you would like to publish your project (including, but not limited to: sell, sign, release in software stores like\nGoogle Play or App Store), does not matter open source, closed source or proprietary, the License obligates you to:\n - Mention your project uses \"AUI Framework\" in your legal notice.\n - Release your changes to AUI (if any) under the same terms (the License).\n\nAs for the latter, you are welcome to upstream your changes (i.e., propose your changes to\n[this repository](https://github.com/aui-framework/aui)).\n\nYou are not obligated to disclose your own sources nor release your own project under the same terms (License).\n\n# Maintaining\n\nThe AUI framework is maintained by Alexey Titov ([Alex2772](https://github.com/Alex2772), alex2772sc 'at' gmail.com)\nwith contributions from many other people. Join our [Discord community](https://discord.gg/jq2WySpg6m) for voice\ncalls.\n\nLet us know if your contribution is not listed or mentioned incorrectly, and we'll make it right.\n\nThe project evolves fast and inconsistently, possibly breaking backward compatibility. The APIs likely to be\nchanged/removed are marked in docs as experimental. Consult with our migration guides on release pages.\n\n# Contributing\n\nYou are welcome to open issues and pull requests on our GitHub repository. This project is maintained by a team of\nvolunteers on a reasonable-effort basis. As such, we can accept your issue, but we can't guarantee resolution. It's all\ndepends on severity and our own needs. In fact, we'd be happy if you submit a pull request. In this case we'll do our\nbest to help you merge your changes to upstream.\n\nPlease refer to [CONTRIBUTING.md](https://github.com/aui-framework/aui/blob/master/CONTRIBUTING.md)\n\n# Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=aui-framework/aui\u0026type=Date)](https://star-history.com/#aui-framework/aui\u0026Date)\n","funding_links":[],"categories":["Frameworks","Recently Updated"],"sub_categories":["[Dec 23, 2024](/content/2024/12/23/README.md)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faui-framework%2Faui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faui-framework%2Faui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faui-framework%2Faui/lists"}