Cross-platform high performance efficient module-based framework for developing and deploying hardware accelerated graphical desktop applications using modern C++17.
- Extended common types (containers, strings, streams, etc...)
- Graphical User Interfaces, including framework tools for fast declarative UI producing using modern C++ capabilities
- Resource compiler (assets)
- Internationalization (i18n)
- DPI support
- CMake deployment scripts
- Model binding and ORM
- Encryption
- IO streams
- Networking, including http(s) requests
- DBMS integration including SQL query builder
- Both asynchronous and synchronous application architecture support
AUI.Core
- basic types (containers, strings, streams, etc...)AUI.Crypt
- wrapper around OpenSSL for encryption functionalityAUI.Curl
- wrapper around libcurl for http/https requestsAUI.Designer
- UI Designer (in dev)AUI.Data
- DBMS interface and ORMAUI.Image
- popular image format loaderAUI.Json
- JSON parserAUI.Mysql
- MySQL driver forAUI.Data
AUI.Network
- networkingAUI.Sqlite
- SQLite driver forAUI.Data
AUI.Svg
- SVG image loaderAUI.Toolbox
- resource compilerAUI.Views
- UI toolkitAUI.Xml
- XML parser
-
equals unsupported?
equals planned+
equals almost completely supported#
equals fully supported
Feature or module | Windows Vista/7/8/8.1/10 | Windows XP | Linux | Android | MacOS | iOS |
---|---|---|---|---|---|---|
AUI.Core | # | # | # | # | ? | ? |
AUI.Crypt | # | # | # | # | ? | ? |
AUI.Curl | # | # | # | # | ? | ? |
AUI.Data | # | # | # | # | ? | ? |
AUI.Designer | ? | ? | ? | - | ? | - |
AUI.Image | # | # | # | # | ? | ? |
AUI.Json | # | # | # | # | ? | ? |
AUI.Mysql | # | # | # | # | ? | ? |
AUI.Network | # | # | # | # | ? | ? |
AUI.Sqlite | # | # | # | # | ? | ? |
AUI.Svg | # | # | # | # | ? | ? |
AUI.Toolbox | # | # | # | - | ? | - |
AUI.Views | # | ? | + | + | ? | ? |
AUI.Xml | # | # | # | # | ? | ? |
Assets | # | # | # | # | ? | ? |
Filesystem | # | # | # | # | ? | - |
Process creation | # | # | # | - | ? | - |
Compiler | Support |
---|---|
MSVC 19+ (Visual Studio 17+) | Full |
gcc (8+) | Full |
MinGW (8+) | Full |
Cross-compile MinGW | Full |
clang | Unknown |
libcurl
for http/https requestsOpenSSL
for encryptionOpenGL
as graphics hardware acceleration backendglm
for linear algebrastbimage
for image loadingfreetype2
for font rendering
Check the examples/
folder.
Please check docs/MANUAL.md
You are always free to contribute to this project and add yourself to the authors list :)
master
branch contains code of the release candidate. Code of this branch must compile without errors and should pass
all tests on all supported platforms.
Each feature of the framework is created in a separate branch in the feat/
folder. Pulling changes from your branch to
master
is possible only if the merge with your branch does not generate merge conflicts and does not break the build
and tests.
AUI's code should be kept with the following code style:
No tabs
; only four spaces- Row length: up to
120
characters - Class names:
CamelCase
- Functions, variables:
lowerCamelCase
- Constants:
UPPER_SNAKE_CASE
- Structures: commonly holds some data and does not have member functions;
CamelCase
. Also used for template-based functionality (likestl
,AUI/Traits/
), in that case,snake_case
used for file names, struct name and its member functions