|
| 1 | +# xtd – A modern, cross-platform C++ framework inspired by .NET |
| 2 | + |
| 3 | +## Intro |
| 4 | + |
| 5 | +I’ve been developing xtd, an open source C++ framework that aims to bring a modern, .NET-like development experience to C++ while staying fully native and cross-platform. |
| 6 | + |
| 7 | +The goal is to provide a rich, consistent API that works out of the box for building console, GUI, and unit test applications. |
| 8 | + |
| 9 | +## Highlights |
| 10 | + |
| 11 | +- Cross-platform: Windows, macOS, Linux, FreeBSD, Haiku, Android, iOS |
| 12 | +- Rich standard-like library: core, collections, LINQ-like queries, drawing, GUI |
| 13 | +- Modern C++ API: works well with stack objects, no need for dynamic allocation everywhere |
| 14 | +- GUI support without boilerplate code |
| 15 | +- Built-in image effects and drawing tools |
| 16 | +- LINQ-style extensions (xtd::linq) for expressive data queries |
| 17 | +- Fully documented with examples |
| 18 | + |
| 19 | +## Example |
| 20 | + |
| 21 | +Simple **"Hello, World"** GUI application : |
| 22 | + |
| 23 | +```cpp |
| 24 | +#include <xtd/xtd> |
| 25 | + |
| 26 | +auto main() -> int { |
| 27 | + auto main_form = form::create("Hello world (message_box)"); |
| 28 | + auto button1 = button::create(main_form, "&Click me", {10, 10}); |
| 29 | + button1.click += [] {message_box::show("Hello, World!");}; |
| 30 | + application::run(main_form); |
| 31 | +} |
| 32 | +``` |
| 33 | + |
| 34 | +## Links |
| 35 | + |
| 36 | +[GitHub](https://github.com/gammasoft71/xtd) |
| 37 | +[Documentation](https://gammasoft71.github.io/xtd) |
| 38 | +Feedback and contributions are welcome. |
| 39 | + |
| 40 | +[screenshot](https://imgur.com/a/8X8blUt) |
| 41 | + |
0 commit comments