Features
Components
xtd contains various classes and components to help you create your applications. These classes and components complement the standard C++ library. The following is a non-exhaustive list of the components present in the xtd framework:
delegate : xtd implements delegate and event classes to respond easily to system events, GUI events and programming events. For more information about handling events, see Handling and Raising Events.
diagnostics : xtd contains numerous diagnostic classes (such as debug, trace, debugger, stack_trace, ...) to help you monitor your application.
drawing : xtd contains solid, hatch, texture and gradients pens, solid, hatch, texture and gradients brushes, colors, images, bitmap, icons, fonts and other useful classes for drawing what you want and need.
io : The xtd::io namespace provides several classes that allow for various actions, such as reading and writing, to be performed on files, directories, and streams. For more information, see File and Stream I/O.
media : xtd contains media classes like, sound_player, system_sound, system_sounds, speech__synthesizer classes.
network : xtd contains several network access classes. You can use components such as dns, ip_address, socket, tcp_client and tcp_listener, udp_client and others.
threading : xtd makes it easy to use threads, with classes such as thread, monitor, named or not event_wait_handle, named or not mutex, named or not semaphore, thread_pool and many others.
timers : xtd includes several timer classes, each of which offers different functionality: xtd::timers::timer, xtd::threading::timer, xtd::forms::timer.
xtd contains a wide variety of classes in different libraries. You can find more information in the xtd programming guide and in the xtd reference guide.
Targets
With xtd you can create differents targets :
console application to run your own application in CLI mode.
gui application to run your own application in a graphical mode with rich controls, containers, dialogs, menu and tools bars. xtd is designed to manage GUI controls and dialogs in pure native mode or with CSS styles.
test application to run your own unit tests.
static library to contain your own code to share between your applications.
dynamic library to contain your own code to share between your applications.
You can use xtdc and xtdc-gui to help you create these different targets.
Various
cmake : xtd is based on CMake and contains numerous functions to help and simplify the configuration of the CMakelists.txt file construction.
license : Free and open-source (MIT License)
modern c++ 17/20 : Written in efficient, modern C++17/20 with RAII programming idiom. API close to the .net API with a modern C++ approach and full integration with the std standard and highly portable and available on many different platforms;