Skip to main content

What is xtd? Introduction and overview

xtd is a free, cross-platform, open source developer platform for building many kinds of applications. xtd is built on the C++ Standard library a high-performance third-party libraries when needed.

Desktop applications

  • Console applications
  • Desktop applications (GUI)
  • Test Applications

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++17 / C++20 with RAII programming idiom;
  • and highly portable and available on many different platforms;

Using xtd

xtd apps and libraries are built from source code and a CMake project file, using the xtdc CLI or an Integrated Development Environment (IDE) like Visual Studio, Xcode, ...

The following example is a minimal xtd app:

CMakeLists.txt file:

cmake_minimum_required(VERSION 3.20)

project(app)
find_package(xtd REQUIRED)
add_sources(app.cpp)
target_type(CONSOLE_APPLICATION)

app.cpp file:

#include <xtd/xtd>

auto main() -> int {
xtd::console::write_line("Hello, World!");
}

The app can be built and run with the xtdc CLI:

%xtdc run
Hello, World!

It can also be built and run as two separate steps. The following example is for an app that is named app:

% xtdc build
% ./build/Debug/app
Hello, World!

Free and open source

Languages

You can write xtd apps in modern C++17 or above and C (For more info about c binding see xtd_c project.

  • C++17 is a simple, modern, object-oriented, and type-safe programming language (For more information about c++ see cppreference).
  • C is an approachable language with a simple syntax for building type-safe (For more information about c see cppreference).

Compilers

The compilers listed below are supported with xtd :

  • Xcode 11.6 - Apple clang version 11.0.3 or later
  • clang 10 or later
  • GCC 10 or later
  • Visual Studio 2019 RTW 16.0 or later

Other compilers can probably be used, but they have not been tested yet.

Tools

The xtd product family provides a great xtd development experience on macOS, Windows, and Linux.

With CMake, xtd support many Development Environment Tools.

xtd has some tools to help you in your development.

CI/CD

xtd can be used with various continuous integration tools and environments, such as:

Next step