Skip to main content




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:

delegates 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 diagnostics : xtd contains numerous diagnostic classes (such as debug, trace, debugger, stack_trace, ...) to help you monitor your application.

drawing 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 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 media : xtd contains media classes like, sound_player, system_sound, system_sounds, speech__synthesizer classes.

net 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 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 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.


With xtd you can create differents targets :

console console application to run your own application in CLI mode.

forms 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.

tunit test application to run your own unit tests.

staticlib static library to contain your own code to share between your applications.

sharedlib 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.


cmake cmake : xtd is based on CMake and contains numerous functions to help and simplify the configuration of the CMakelists.txt file construction.

license license : Free and open-source (MIT License)

cpp 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;

See also