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.
Note on the current native backend
To enable fast, stable, and cross-platform development, the xtd.drawing and xtd.forms libraries currently use wxWidgets as their single native backend, via xtd.drawing.native.wxwidgets and xtd.forms.native.wxwidgets. This decision allows xtd’s public API to evolve rapidly, without being slowed down by the overhead of maintaining multiple native backends simultaneously (Win32, Cocoa, Gtk4, etc.).
This is a transitional design: in future versions, each platform will have its own native backend to leverage its specific features and performance, while preserving a unified API for end users.
- xtd 2.0.0: Implementation of the Win32 backend via xtd.drawing.native.win32 and xtd.forms.native.win32.
- xtd 3.0.0: Implementation of the Gtk4 backend via xtd.drawing.native.gtk4 and xtd.forms.native.gtk4.
- xtd 4.0.0: Implementation of the Cocoa backend via xtd.drawing.native.cocoa and xtd.forms.native.cocoa.
See the full xtd roadmap for more details.