vczh-libraries/Release
vczh-libraries/Release has 1,408 GitHub stars and 265 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 06:13 UTC. Last push 2026-11-01.
Release folder of all projects, mainly for GacUI: Native C++ UI library, cross-platform, MVVM and data binding, XML description, multi-language, core/renderer cross-process separation, etc
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalRelease
Release folder of all projects.
Read the LICENSE first.
Read GacUI website or the mirror website for more information.
Executables in Tools are no longer committed to this repo. Read Tools/README.md for building tools.
Download code from public releases to get the latest stable release. Code from this repo is also usable but I don't make any promise. I will only make a new release when I think the code is ready to update.
Synchronized latest releases:
1.5.1.1
1.2.11.0
- Windows
- Linux XWindow
- XWindow version is stopped maintaining. Please use
Linux Waylandinstead.
- XWindow version is stopped maintaining. Please use
GacUI
GPU Accelerated C++ User Interface, with:
- Cross-platform supports (Windows, Linux, macOS, browsers with WebAssembly and HTML5)
- Native Renderers
- GacJS primarily runs the GacUI core as WebAssembly in a browser, with HTML5 rendering and optional TypeScript view models; demos are available.
- TUI Renderers
- Hosted Mode to render all windows in one native window (optional)
- Core/Renderer cross-process separation (optional)
- Built-in powerful text processing libraries
- Built-in data binding and MVVM features
- View Model could be implemented in another process with your favorate programming languages.
- Such FFI integration starts from defining interfaces using the Workflow script
- XML UI description embedding Workflow script language
- Dynamic loading with C++ dynamic reflection opt-in
- Allow loading foreign UI with complex behavior in runtime
- Generate XML and Workflow to C++ source files for static linking (recommended)
- Allow C++ dyanmic reflection opt-out to significantly improve performance and reduce binary size
- Dynamic loading with C++ dynamic reflection opt-in
WebAssembly and HTML5 with GacJS
Running GacUI in a browser through WebAssembly is GacJS's primary purpose and most important feature. Its current demos load the GacUI core as a .wasm file in a browser worker. Both the HTML5 renderer and a TypeScript view-model host can connect to the core through exposed functions and callbacks, using GacUI Remote Protocol for rendering and Workflow RPC for view models.
WebAssembly and HTTP are alternative transports for this integration. HTTP primarily supports testing HTML5 rendering against a native core without building WebAssembly. The WebAssembly demos use a website server to serve files and do not require a separate HTTP core process. See the GacJS WebAssembly guide for the current demos and Linux build procedure.
Native and remote renderers remain available for Windows, Linux through wGac, and macOS through iGac.
Implementing View Model in Other Programming Languages
- When the view model is marked with
@rpc:interfaceand@rpc:ctor, metadata will be printed along withGacGenorGacBuild.ps1. - For TypeScript, code is ready in the GacJS repo, with WebAssembly as its primary browser integration and HTTP as an alternative testing transport.
- For other programming languages, a codegen could be created following GacJS/doc/rpc/README.md.
- In the instructions, materials supporting the verification is located in both Workflow and GacUI repos:
- In the Workflow repo, there are test cases covering all aspects of the RPC protocol.
- In GacUI/.github/Jobs/DebugRemoteProtocolWithGacJS.md, it contains instructions about how to test a real app with view model created in TypeScript.
- GacJS could serve as an example of forgien view model implementation, the TypeScript RPC codegen is created following the same instruction here.
- According to the license, Workflow and GacUI could serve the reading and debugging purpose.
- Feed the instruction to codex and be worry free!
- Before the next one is created, I strongly recommend planning using gpt-6 astra ultra, followed by execution using gpt-6 astra xhigh.
Sample Test Apps for Remote Protocol
- GacUI:
- Refer to
RemotingTest_Core,RemotingTest_Rendering_Win32,RemotingTest_RvmHost. - GacUI/.github/Jobs/DebugRemoteProtocolWithGacJS.md
- GacUI/.github/Jobs/DebugRemoteProtocolWithNativeRenderer.md
- Refer to
- wGac:
- This repos contain Wayland native renderer implementation and test apps
RemotingTest_Rendering_Wayland.
- This repos contain Wayland native renderer implementation and test apps
- iGac:
- This repos contain Cocoa native renderer implementation and test apps
RemotingTest_Rendering_macOS.
- This repos contain Cocoa native renderer implementation and test apps
- GacJS:
- Its primary feature is running the GacUI core through WebAssembly with HTML5 rendering.
WasmFCT,WasmRPT, andWasmRVMTin GacUI pair with browser demos in GacJS;WasmRVMTalso connects a TypeScript view model to the WebAssembly core. - HTTP demos test the same HTML5 renderer and TypeScript view-model integration against a native core.
- Its primary feature is running the GacUI core through WebAssembly with HTML5 rendering.
- According to the license, wGac, iGac and GacJS are part of the release.
Project.mdandAGENTS.mdfiles are good entries.
Coding Agent Supports
- Rich context, instructions and documentation for developing with coding agents
- GacUI applications UI can be understand and operated by coding agents meanwhile:
- Works even when the screen is locked.
- Does not block you from using the computer.
Visual Studio and WinDBG/CDB Extension
Copy Vlpp.natvis to Visual Studio's visualizers folder:
- VS2022
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Packages\Debugger\Visualizers - VS2026
C:\Program Files\Microsoft Visual Studio\18\Community\Common7\Packages\Debugger\Visualizers.nvloadthis file in WinDBG/CDB for better rendering of data structures, which is already embedded incopilotDebug_Start.ps1.
Using Coding Agents
Follow the guidance and here is a simplified summarization.
Both AGENTS.md and CLAUDE.md are prepared so that copilot/codex/claude coding agent follow the same instruction.
The follow keywords maintain design documents in .github/TaskLogs, anything except Copilot_Scrum.md is not tracked by git, you can change the .gitignore in that folder if you like.
- Use
ask ...to answer your question. - Use
review <file>for reviewing a task in a file. - Use
investigate repro ...|<file>for coding works or bug fixing. - More use cases in
AGENTS.md.
You can copy the whole .github folder to your own repo.
.github/KnowledgeBasecontains detailed documentation for the library, they will be read without having to being explicitly mentioned.- Prompt files tell the coding agent how to work with
msbuildandcdb(the CLI version of WinDBG).- You need to prepare
VLPP_VSDEVCMD_PATHandCDBPATHenvironment variable - Building/testing/debugging is doable, for unit test, CLI or GacUI Applications.
- Update
Project.mdto describe where the source code is (Example).
- You need to prepare
.github/copilot-instructions.mdand.github/Guidelinesfollow the pattern in all repos in this github organization, feel free to change.
Content of This Project
- Import Gaclib source code
- Skins Predefined control templates. You will need to call
vl::presentation::theme::RegisterThemeto set a default skin before creating any controls. Read WinMain.cpp for details.
- Skins Predefined control templates. You will need to call
- Tools
- UiaListCli.exe Windows UI Automation console inspector with typed JSON commands, ranges and previews
- UiaListApp.exe Windows UI Automation inspector for application windows, properties and supported actions
- GitTui Terminal Git browser for working-tree diffs and branch history on Windows, Linux and macOS, with explicit pull commands
- GacBuild.ps1 and GacBuild.sh Do everything for you if you don't want to understand build steps. This one builds multiple resource xml files at the same time. It calls the following tools:
- GacGen.exe GacUI resource compiler and C++ code generator for x86 and x64
- GacBuild.exe Incremental build and cross resource resolver for GacGen.exe
- CppMerge.exe Merge GacUI generated code for x86 and x64 to architecture-independent code
- GlrParserGen.exe General LR parser to C++ code generator
- CodePack.exe Merge a group of C++ source files into multiple pairs of .h/.cpp big filesinformation.
- GacClear.ps1 Force
GacBuild.ps1rebuilding all resource xml files for the next time. - CopyExecutables.ps1 Copy executables to the current folder after building
Tools/Executables/Executables.sln. - BuildExecutables.sh Build script for Linux.
- Tutorial Sample code
- Lib Static library projects for all tutorials
- GacUI_HelloWorlds Different ways to create a GacUI hello world project
- GacUI_Layout Demo how to use GacUI layout
- GacUI_Controls Demo how to use GacUI controls
- GacUI_ControlTemplate Demo how to create control templates (skin) for GacUI controls
- GacUI_Xml Demo how to author GacUI XML resource file
- GacUI_Windows Demo how to interact with native Windows OS features.
Image files are not owned by this repo or organization except for GacUI logos.
Creating a GacUI app using CMake
WARNING: it is not maintained by members in vczh-libraries organization, please check the version number before using.
Third party project for GacUI: https://github.com/mangosroom/GacUI-CMake-support
Building using vcpkg
WARNING: it is not maintained by members in vczh-libraries organization, please check the version number before using.
You can build and install vlpp using vcpkg dependency manager:
- git clone https://github.com/Microsoft/vcpkg.git
- cd vcpkg
- ./bootstrap-vcpkg.sh # ./bootstrap-vcpkg.bat for Windows
- ./vcpkg integrate install
- ./vcpkg install vlpp
Source files in the "Import" folder are grouped by different features defined in CMakeLists.txt.
The vlpp port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,927 starspublic-apis/public-apis
A collective list of free APIs
497,176 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,406 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,177 stars