Xtd
Free open-source modern C++20 framework to create console (CLI), forms (GUI like WinForms) and unit test (xUnit) applications and libraries on Windows, macOS, Linux, iOS, Android, FreeBSD, Haiku, and SerenityOS.
Install / Use
/learn @gammasoft71/XtdREADME
xtd
Write Once, Run Everywhere!
<br/>xtd (pronounced "extend") is a modern C++20 framework to create console (CLI), forms (GUI) and unit test (xUnit) multiplatform applications and libraries.
<br/> <div style={{ display: 'flex', justifyContent: 'left', flexWrap: 'wrap', gap: '30px', marginTop: '10px' }}> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/Windows_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/macOS_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/Linux_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/iOS_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/Android_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/FreeBSD_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/Haiku_h100.png"/></a> <a href="https://gammasoft71.github.io/xtd/docs/documentation/portability"><img src="https://github.com/gammasoft71/xtd/blob/master/docs/pictures/os/SerenityOS_h100.png"/></a> </div> <br/> <br/>Latest news
- xtd 0.2.0 will require C++20 as the minimum standard - Posted on June 15, 2025
- Release xtd 0.1.2 (beta) - Posted on March 12, 2024
- The xtd 0.2.0 is growing - Posted on November 12, 2023
- Release xtd 0.1.1 (beta) - Posted on Jully 17, 2023
- All news
Features
- Free and open-source (MIT License);
- a collection of native C++ classes libraries, to extend std;
- API close to the .net API with a modern C++ approach and full integration with the std standard;
- xtd is designed to manage GUI controls and dialogs in pure native mode or with CSS styles.
- written in efficient, modern C++20 with RAII programming idiom;
- and highly portable and available on many different platforms;
- See features for more informations.
xtd libraries architecture
xtd is composed of several libraries.
xtd.core
The xtd.core library is modern C++20 libraries of classes, interfaces, and value types that provide access to system functionality. It is the foundation on which c++ applications, components, and controls are built.
xtd.drawing
The xtd.drawing library contains types that support basic GDI+ graphics functionality. Child namespaces support advanced two-dimensional and vector graphics functionality, advanced imaging functionality, and print-related and typographical services. A child namespace also contains types that extend design-time user-interface logic and drawing.
xtd.forms
The xtd.forms library contains classes for creating Windows-based applications that take full advantage of the rich user interface features available in the Microsoft Windows, Apple macOS and linux base operating system.
xtd.tunit
The xtd.tunit library is a unit-testing framework for modern C++20, inspired by Microsoft.VisualStudio.TestTools.Cpp.
Getting Started
- Installation provides download, install and uninstall documentation.
- Guides provides xtd guides and tutorials.
- Examples provides over 900 examples to help you use xtd, grouped by libraries and topics.
Development status
- Release notes provides release notes information.
- Roadmap provides a view of the xtd roadmap.
- Kanban board provides a Kanban view for all tasks (enhancements, pull requests, bugs, questions,...).
- Development status provides information about classes and libraries development status.
- Translation status provides information about translations status.
Current release status
This project is an open source project. The developers who participate do so on their own time. It is therefore difficult to fix realese dates.
But you can follow the evolution of the development. We keep the status up to date.
Continuous Integration build status
At each commit, a build and unit tests are performed for the following configurations
| Operating system | Architecture | Compiler | Build Type | Status |
| -----------------| ----------------------- | ------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Linux (Ubuntu) | x86 / x64 | Clang / GCC | Debug / Release | |
| macOS | x64 / arm64 | Apple Clang | Debug / Release |
|
| Windows | x86 / x64 | MSVC (VS2022) | Debug / Release |
|
| Windows (MSYS2) | x64 | Clang / GCC | Debug / Release |


