Free open-source modern C++17 / C++20 framework to create console, forms (GUI like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux.

Overview

xtd

Modern C++17/20 framework to create console (CLI), forms (GUI like WinForms) and tunit (unit tests like Microsoft Unit Testing Framework) applications on Windows, macOS, Linux, iOS and android (*).

logo

(*) See portability for more information.

License Language Reference Guide Download xtd

Continuous Integration build status

TEMPORARILY DISABLED.

We are actively looking for a solution.

Features

  • Free and open-source (MIT License);
  • a collection of native C++ classes libraries, to complete std;
  • API close to the .net API with a modern C++ approach and full integration with the std standard;
  • written in efficient, modern C++17 / C++20 with RAII programming idiom;
  • and highly portable and available on many different platforms;

For more information see

Examples

The classic first application 'Hello World'.

Console (CLI)

hello_world_console.cpp

#include <xtd/xtd>

using namespace xtd;

int main() {
  console::background_color(console_color::blue);
  console::foreground_color(console_color::white);
  console::write_line("Hello, World!");
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

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

Build and run

Open "Command Prompt" or "Terminal". Navigate to the folder that contains the project and type the following:

xtdc run

Output

Hello, World!

Forms (GUI like WinForms)

hello_world_forms.cpp

#include <xtd/xtd>

using namespace xtd::forms;

class main_form : public form {
public:
  main_form() {
    text("Hello world (message_box)");

    button1.location({10, 10});
    button1.parent(*this);
    button1.text("&Click me");
    button1.click += [] {
      message_box::show("Hello, World!");
    };
  }
  
private:
  button button1;
};

int main() {
  application::run(main_form());
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(hello_world_forms)
find_package(xtd REQUIRED)
add_sources(hello_world_forms.cpp)
target_type(GUI_APPLICATION)

Build and run

Open "Command Prompt" or "Terminal". Navigate to the folder that contains the project and type the following:

xtdc run

Output

Windows

Screenshot

Screenshot

macOS

Screenshot

Screenshot

Linux Gnome

Screenshot

Screenshot

tunit (Unit tests like Microsoft Unit Testing Framework)

hello_world_test.cpp

#include <xtd/xtd>
#include <string>

using namespace std;
using namespace xtd::tunit;

namespace unit_tests {
  class test_class_(hello_world_test) {
  public:
    void test_method_(create_string_from_literal) {
      string s = "Hello, World!";
      valid::are_equal(13, s.size());
      assert::are_equal("Hello, World!", s);
    }
    
    void test_method_(create_string_from_chars) {
      string s = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!'};
      valid::are_equal(13, s.size());
      string_assert::starts_with("Hello,", s);
      string_assert::ends_with(" World!", s);
    }
  };
}

int main() {
  return console_unit_test().run();
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(hello_world_test)
find_package(xtd REQUIRED)
add_sources(hello_world_test.cpp)
target_type(TEST_APPLICATION)

Build and run

Open "Command Prompt" or "Terminal". Navigate to the folder that contains the project and type the following:

xtdc run

Output

Start 2 tests from 1 test case
Run tests:
  SUCCEED hello_world_test.create_string_from_literal (0 ms total)
  SUCCEED hello_world_test.create_string_from_chars (0 ms total)

Test results:
  SUCCEED 2 tests.
End 2 tests from 1 test case ran. (0 ms total)

Getting Started

  • Installation provides download and install documentation.
  • Portability provides information about C++, libraries dependency, Operating System supported, Compilers and Development Environment tools.
  • Tutorials provides xtd tutorials.
  • Examples provides some examples.

Development status

This project is an open source project. The developers who participate do so on their own time. It is therefore difficult to fix realese dates.

But you can follow the evolution of the development. We keep the status up to date.

Contributing

The authors file lists contributors together with contact information. If you make a contribution, please add yourself to the list.

Your contributions are welcome.

  • First read Code of conduct and the design guidelines to make sure your contribution follows the rules.
  • Fork the project and use a pull request for adding your contribution.
  • If you face any problems feel free to open an issue at the issues tracker, If you feel like there is a missing feature, please raise a ticket on Github. Pull request are also welcome.

Your feedback is important for the evolution of the project.

Gallery

minesweeper

minesweeper (on Windows)


game_of_life

game_of_life (on macOS)


calculator

calculator (on Ubuntu)


stopwatch

stopwatch (on Windows)


xtdc-gui

xtdc-gui - Create a new project (on macOS)


painting

painting (on Ubuntu)

Comments
  • [BUG] xtd.tunit - Invalid links in xtd/examples/xtd.tunit.examples/README.md

    [BUG] xtd.tunit - Invalid links in xtd/examples/xtd.tunit.examples/README.md

    Describe the bug

    All links in xtd/examples/txd.tunit.examples/README.md to header files produce 404 error

    To Reproduce

    1. On Github, open gamasoft71/xtd/examples.xtd.tunit.examples//README.md
    2. Click on any of the links that begin with xtd::unit::
    3. Web page showing Github 404 error page is displayed.

    Expected behaviour

    Display appropriate header file

    Screenshots

    None

    Desktop (please complete the following information)

    N/A

    I will generate a pull request to fix this if this issue is accepted.

    bug Fixed 
    opened by jimorc 11
  • [BUG] xtd.forms - combo_box in vertical_layout_panel produces warning on macOS

    [BUG] xtd.forms - combo_box in vertical_layout_panel produces warning on macOS

    Describe the bug

    See the sample program below:

    #include <xtd/xtd>
    #include <iostream>
    
    using namespace xtd;
    using namespace xtd::forms;
    
    class form1 : public form
    {
        public:
            form1()
            {
                box.height(21);
                box.drop_down_style(combo_box_style::drop_down_list);
                box.items().push_back_range({"Item 3", "Item 4"});
    //            *this << box; //  activate this line
                vlp << box;     // and comment out this line
                *this << vlp;
            }
        private:
            vertical_layout_panel vlp;
            combo_box box;
    };
    int main()
    {
        form1 f;
        application::run(f);
        return EXIT_SUCCESS;
    }
    

    As written, the program outputs two messages on macOS when run:

    ...
    The domain/default pair of (kCFPreferencesAnyApplication, AppleInterfaceStyle) does not exist
    ... This application is trying to draw a very large combo box, 32 points tall.  Vertically resizable combo boxes are not supported,
     but it happens that 10.4 and previous drew something that looked kind of sort of okay.  The art in 10.5 does not break up in a
     way that supports that drawing.  This application should be revised to stop using large combo boxes.  This warning will appear
     once per app launch.
    

    If the line *this << box; is activated, and the line immediately below it is commented out, then only the first message is output. This holds as long as the combo_box height is set to 21 or less.

    To Reproduce

    Steps to reproduce the behavior:

    1. Build and execute the program. Messages as shown are printed.
    2. Activate *this << box; and comment out line below it.
    3. Build and execute the program. Only the first message is printed.

    Expected behaviour

    Only the first message should be printed.

    Screenshots

    N/A

    Desktop (please complete the following information)

    • OS: macOS
    • Version: 12.5.1
    • xtd version: master after fixes for issues 192, 193, 194.

    Additional context

    N/A

    Workaround

    Live with it.

    bug Fixed 
    opened by jimorc 9
  • [BUG] Problems of installing xtd in Arch linux and distributions that are based on it

    [BUG] Problems of installing xtd in Arch linux and distributions that are based on it

    The bug I have a problems with installing this framework in Arch linux and also the distributions that are based on it, i tried to install it on Manjaro and it fails, and now in Arch linux and it fails also.

    Expected behaviour I can use the xtd in Arch linux without any problems

    Desktop:

    • OS: Arch linux
    • Version: 1/02/2022
    • kernel : 5.16.4
    • xtd version: latest version
    bug Fixed 
    opened by Mamograg17 9
  • [QUESTION] Cmake Error install(error installing..)

    [QUESTION] Cmake Error install(error installing..)

    hi...i download it from sourceForge and ... but when i start file install(from cmd and with adminstor)i got Error Cmake and other error.... i have git,Vs Studio,Cmake(version 3.23.0-rc3(laset version)) and other reqiued for this. i really need this lib pls help me in fixing! ScreenShot: Capture list error in TXT file: Error install.txt

    Operation System: Windows 10 Home (ver 2004(AND LASSET UPDATE)) Viusal Studio Ver 2022 Community Cmake version 3.23.0-rc3(laset version) Help me!

    question Fixed 
    opened by mortzaLootTool 7
  • [BUG] xtd.tools - xtdc fails to generate new project by path only

    [BUG] xtd.tools - xtdc fails to generate new project by path only

    Describe the bug

    xtdc causes xtdc-gui to fail to generate new project due a problem in arguments.

    • This command works: xtdc new gui -s xtd my_app -> creates a new project at local path/my_app
    • This command fails: xtdc new gui -s xtd C:\Users\bader\Desktop\my_app -> shows error message Unhandled exception: xtd::io::io_exception : I/O error occurred.

    To Reproduce

    Steps to reproduce the behavior: Either use xtdc-gui to create any new project, or to get more information try to create a new xtd project using xtdc with a path instead of a name, as described in xtdc --help: -n, --name The name for the project. If no name is specified, the name of the specified path or of the current directory is used.

    Expected behaviour

    Both commands with arguments path and name to work

    Screenshots

    image

    Desktop (please complete the following information)

    • OS: Windows
    • Version: 10
    • xtd version: 0.2.0
    • xtdc version: 0.2.0

    Workaround I don't know if the problem is also occurring in other platforms but i will give it a test in Linux. The culprit is more likely to be in xtdc.cpp get_project_name_from_path(), i will try to look it up.

    bug Fixed 
    opened by baderouaich 6
  • [BUG] can not build

    [BUG] can not build

    CMake Error at build/cmake/functions.cmake:596 (add_library): Cannot find source file:

    D:/xtd-master/build/3rdparty/wxWidgets/src/jpeg/jaricom.c
    

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc Call Stack (most recent call first): build/cmake/lib/jpeg.cmake:11 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): Cannot find source file:

    D:/xtd-master/build/3rdparty/wxWidgets/src/png/png.c
    

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc Call Stack (most recent call first): build/cmake/lib/png.cmake:21 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): Cannot find source file:

    D:/xtd-master/build/3rdparty/wxWidgets/src/tiff/libtiff/tif_win32.c
    

    Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc Call Stack (most recent call first): build/cmake/lib/tiff.cmake:19 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxregex Call Stack (most recent call first): build/cmake/lib/regex.cmake:13 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxzlib Call Stack (most recent call first): build/cmake/lib/zlib.cmake:13 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxexpat Call Stack (most recent call first): build/cmake/lib/expat.cmake:13 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxjpeg Call Stack (most recent call first): build/cmake/lib/jpeg.cmake:11 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxpng Call Stack (most recent call first): build/cmake/lib/png.cmake:21 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Error at build/cmake/functions.cmake:596 (add_library): No SOURCES given to target: wxtiff Call Stack (most recent call first): build/cmake/lib/tiff.cmake:19 (wx_add_builtin_library) build/cmake/lib/CMakeLists.txt:28 (include)

    CMake Generate step failed. Build files cannot be regenerated correctly. Installing xtd... 子目录或文件 build 已经存在。 -- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19044. CMake Warning at scripts/cmake/xtd_commands.cmake:2167 (message): Doxygen not found try with set "XTD_DOWNLOAD_DOXYGEN" option to ON Call Stack (most recent call first): CMakeLists.txt:54 (include)

    CMake Error at C:/Program Files/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.23/Modules/FindwxWidgets.cmake:1025 (find_package_handle_standard_args) src/xtd.drawing.native.wxwidgets/CMakeLists.txt:18 (find_package)

    invalid Fixed 
    opened by kkptm 6
  • [ENHANCEMENT] Add the ability to close a dropdown combo_box programmatically

    [ENHANCEMENT] Add the ability to close a dropdown combo_box programmatically

    Your question

    Here is a test program that displays a combo_box. The list is populated when the dropdown list is displayed, and an item is selected. I would like to close the dropdown list programmatically, but I have found no method to do so. Have I missed the method, is it not possible, or does this need to be an enhancement?

    #include <xtd/xtd>
    
    using namespace xtd;
    using namespace xtd::forms;
    
    class form1 : public form {
      public:
        form1() {
          box_.drop_down += event_handler(*this, &form1::box_drop_down);
          *this << box_;
        }
        void box_drop_down(object& sender, const event_args& e)
        {
          box_.items().clear();
          box_.items().push_back({"Item 1"});
          box_.selected_index(0);
        }
      private:
        combo_box box_;
    };
    
    int main()
    {
      application::run(form1 {} );
    }
    
    enhancement Fixed 
    opened by jimorc 5
  • [BUG] Path not updated with xtd install on Windows

    [BUG] Path not updated with xtd install on Windows

    Describe the bug

    I installed Visual Studio Community 2022 and cmake. I then cloned the xtd repository and attempted to build it. The build ran for a long time, then produced the following output;

    --snip--
     -- Up-to-date: C:/Program Files (x86)/xtd/share/xtd/themes/xtd_light/system-colors.css
      -- Up-to-date: C:/Program Files (x86)/xtd/share/xtd/themes/xtd_light/theme.css
    Microsoft (R) Windows Script Host Version 5.812
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Microsoft (R) Windows Script Host Version 5.812
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Microsoft (R) Windows Script Host Version 5.812
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    1024 was unexpected at this time.
    
    C:\Users\jimor\Projects\xtd>
    

    I tried to build a simple app using;

    xtdc build
    

    but I get;

    'xtdc' is not recognized as an internal or external command,
    operable program or batch file.
    

    To Reproduce

    As described above.

    Expected behaviour

    xtd install to complete without errors and simple xtd based app to build.

    Screenshots

    N/A

    Desktop (please complete the following information)

    • OS: Windows
    • Version: 10
    • xtd version: latest from master

    Additional context

    none

    Workaround

    None known

    bug Fixed 
    opened by jimorc 4
  • [BUG] When resizing xtdc-gui, the graphics get messed up

    [BUG] When resizing xtdc-gui, the graphics get messed up

    Describe the bug When resizing xtdc-gui, the graphics get messed up.

    To Reproduce Steps to reproduce the behavior:

    1. Resize form to minimum
    2. Resize form to the original size
    3. Do the operation several times
    4. Controls are misaligned

    Expected behaviour The controls must be aligned correctly.

    Screenshots image

    Desktop (please complete the following information):

    • OS: all OS
    • Version: any
    • xtd version: development version

    Additional context The error comes from wxWidgets, depending on the frequency of calls to GetClientSize and SetClientSize applying the difference between the previous size and the new size, it makes more and more errors when updating the sizes:

    • the width becomes bigger and bigger
    • the height becomes smaller and smaller

    POC :

    class MainFrame : public wxFrame {
    public:
      MainFrame() : wxFrame {nullptr, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize} {
        SetClientSize(300, 300);
        panelLeft->SetBackgroundColour({255, 0, 0});
        Show();
        parent_size_ = panel->GetClientSize();
        SetTitle(wxString::Format("diff = {%d, %d}", panel->GetSize().GetWidth() - panelLeft->GetSize().GetWidth(), panel->GetSize().GetHeight() - panelLeft->GetSize().GetHeight()));
    
        panel->Bind(wxEVT_SIZE, [&](wxSizeEvent& e) {
          auto diff = panel->GetClientSize() - parent_size_;
          panelLeft->SetSize(panelLeft->GetSize() + diff);
          parent_size_ = panel->GetSize();
          SetTitle(wxString::Format("diff = {%d, %d}", panel->GetSize().GetWidth() - panelLeft->GetSize().GetWidth(), panel->GetSize().GetHeight() - panelLeft->GetSize().GetHeight()));
        });
      }
      
    private:
      wxSize parent_size_ ;
      wxPanel* panel = new wxPanel(this, wxID_ANY);
      wxPanel* panelLeft = new wxPanel(panel, wxID_ANY, {50, 50}, {150, 150});
    };
    

    Workaround No workaround

    bug Fixed 
    opened by gammasoft71 4
  • [BUG] xtd-gui doesn't launch on Linux

    [BUG] xtd-gui doesn't launch on Linux

    Describe the bug The program crashes with SIGTRAP and:

    (xtdc-gui:15502): Gtk-ERROR **: 18:38:12.366: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
    

    To Reproduce Steps to reproduce the behavior:

    1. Install on linux (opensuse in my case)
    2. Try to launch the gui via terminal (to see the error message)

    Expected behaviour Gui should show up

    Desktop (please complete the following information):

    • OS: Linux, OpenSuSE
    • Version: Tumbleweed
    • xtd version: master (4d412ab046f51da2e5baf782f9f2f5bb23c49840)
    invalid 
    opened by niansa 4
  • little more adjustments

    little more adjustments

    opened by baderouaich 4
  • [ENHANCEMENT] xtd - Creation of the website

    [ENHANCEMENT] xtd - Creation of the website

    xtd - Creation of the website

    Enhancement

    Creation of the the website.

    Description

    Creation of the website on GitHub with Docusaurus.

    • [x] create branch 'docs'
    • [ ] Integration of existing markdown documentation with Docusaurus
    • [ ] Put on line

    Remarks

    Later, it would be interesting to integrate the 'References Guide' in the website. There could be several 'References Guide' (one per version). This would imply to be able to generate the documentation with the github action and to be able to get the generated documentation in the github repo.

    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - link_label enhancements

    [ENHANCEMENT] xtd.forms - link_label enhancements

    xtd.forms - link_label

    • [ ] Correct management of text alignment
    • [ ] Wrap text according to the client rectangle of the control
    • [ ] Correct management of the definition of links.
    • [ ] Correct management of color and font options for links
    • [ ] Support of style sheets for themes.
    enhancement 
    opened by baderouaich 0
  • [ENHANCEMENT] xtd.forms - message_notifier

    [ENHANCEMENT] xtd.forms - message_notifier

    xtd.forms - xtd::forms::message_notifier

    Library

    xtd.forms

    Enhancement

    xtd::forms::message_notifier

    Description

    message_notifier is a small, nonblocking notification pop-up. A message_notifier is shown to users with readable message content at the bottom or top of the screen or at a specific target and disappears automatically after a few seconds (time-out). The control has various built-in options for customizing visual elements, durations, and dismissing toasts.

    • [ ] xtd::forms::message_notifier component

    First draft

    Unfortunately, the different OS don't manage the notifications in the same way. So, we should have as for the dialog box xtd::forms::about_dialog manage the two styles of dialog:

    • xtd::forms::dialog_style::standard (notification managed by xtd)
    • xtd::forms::dialog_style::system (notification system).

    Notification system :

    Use wxNotificationMessage whenever possible. But typically, on macOS it doesn't work (Maybe for a user right ?). And if the wxWidgets component doesn't match maybe call the native version for each OS (as I did for xtd::forms::message_box which was not implemented correctly in macOS and Windows).

    Standard notification :

    Implement our own xtd::forms::form (no border, no title and no controls). Add an image, a message and the possibility of 1, 2 or more buttons. Add an xtd::forms::timer for automatic closing.

    Common

    • Add asynchronous button events (like xtd::forms::show_sheet) which allows to know which button has been clicked.
    • Add a close event.
    • add properties for the message_notifier

    API

    Globally the API will be close to xtd::forms::message_dialog and xtd::forms::message_box with the possibility to have custom buttons and a timer to close the notification automatically.

    enhancement In progress 
    opened by gammasoft71 3
  • [ENHANCEMENT] xtd.forms - web_browser_renderer

    [ENHANCEMENT] xtd.forms - web_browser_renderer

    xtd.forms - web_browser_renderer

    Library

    xtd.forms

    Enhancement

    web_browser_renderer

    Description

    Provides xtd::forms:: web_browser renderer methods.

    • [ ] xtd::forms::web_browser_renderer
    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - web_browser

    [ENHANCEMENT] xtd.forms - web_browser

    xtd.forms - web_browser

    Library

    xtd.forms

    Enhancement

    web_browser

    Description

    Enables the user to navigate Web pages inside your form.

    • [ ] xtd::forms:: web_browser control
    enhancement 
    opened by gammasoft71 0
  • [ENHANCEMENT] xtd.forms - status_strip_renderer

    [ENHANCEMENT] xtd.forms - status_strip_renderer

    xtd.forms - status_strip_renderer

    Library

    xtd.forms

    Enhancement

    status_strip_renderer

    Description

    Provides xtd::forms:: status_strip renderer methods.

    • [ ] xtd::forms::status_strip_renderer
    enhancement 
    opened by gammasoft71 0
Releases(v0.1.0-beta)
Owner
Gammasoft
Aims to make c++ fun again.
Gammasoft
The new Windows Terminal and the original Windows console host, all in the same place!

The new Windows Terminal and the original Windows console host, all in the same place!

Microsoft 86.8k Dec 29, 2022
FastReport.Cloud console tool for Linux and perhaps some other OSes

FastReport Cloud console shell This is a simple console shell to FastReport Cloud service. Prerequests GNU packages for build shell: curl-development

Aleksey Mandrykin 2 Feb 10, 2022
This repository contains the source code of the project(StereoCraft) that we have developed for the Mixed Reality Hackathon organized by Microsoft using StereoKit SDK

StereoCraft - A block-building like experience built using StereoKit This repository contains the source code of the project that we have developed fo

G Bhanuteja 2 Dec 23, 2021
A CLI for extracting libraries from Apple's dyld shared cache file

dyld-shared-cache-extractor As of macOS Big Sur, instead of shipping the system libraries with macOS, Apple ships a generated cache of all built in dy

Keith Smiley 237 Dec 18, 2022
Microsoft Visual TrueType(VTT) command line compile tool.

Project Microsoft Visual TrueType(VTT) is a professional-level tool for graphically instructing TrueType and OpenType fonts. For details on the tool v

Microsoft 39 Dec 21, 2022
EAMain provides a multi-platform entry point used for platforms that don't support console output, return codes and command-line arguments.

EAMain provides a multi-platform entry point used for platforms that don't support console output, return codes and command-line arguments.

Electronic Arts 34 Oct 1, 2022
Run commands with hidden console.

Minimal run This is a tiny C program for running Windows commands with a hidden console. It's suitable for use in Windows shortcuts, i.e. lnk files. I

Tavis Ormandy 24 Dec 18, 2022
cpp-progressbar is a small console program I wrote in c++. 3 themes are available

cpp-progressbar cpp-progressbar is a small console program I wrote in c++. 3 themes are available (this program only works on linux) Instalation Downl

Zielino 3 Jun 17, 2022
A C++ console tool to tracker baby actions.

BabyTracker This is a C++ console tool to tracker baby actions. Currently it supports adding Sleep Sessions Breast Feed Sessions Bottle Feed Sessions

YuchenPersonal 1 Oct 17, 2021
crypted admin shell: SSH-like strong crypto remote admin shell for Linux, BSD, Android, Solaris and OSX

crypted admin shell: SSH-like strong crypto remote admin shell for Linux, BSD, Android, Solaris and OSX

Sebastian 135 Jan 2, 2023
Rizin - UNIX-like reverse engineering framework and command-line toolset.

Rizin - UNIX-like reverse engineering framework and command-line toolset.

Rizin Organization 1.7k Dec 30, 2022
Modern C++ Undo / Redo framework

History Hello Developers! I present to you History, a modern C++ (C++17) Undo / Redo framework. My goal was to create a non-intrusive, compact and int

null 18 Dec 7, 2022
util-linux is a random collection of Linux utilities

util-linux is a random collection of Linux utilities

Karel Zak 2k Jan 1, 2023
Fire for C++: Create fully functional CLIs using function signatures

Fire for C++ Fire for C++, inspired by python-fire, is a single header library that creates a command line interface from a function signature. Here's

Kristjan Kongas 439 Dec 31, 2022
A simple command line application in order to create new Code workspaces.

mkcws Summary A simple command line application in order to create new Code workspaces. License This project's license is GPL 2. The whole license tex

Kevin Matthes 0 Apr 1, 2022
Simple command line tools to create/extract X4 .cat+.dat files

x4cat Simple command line tools to to create/extract X4 .cat+.dat files x4encat Usage: x4encat <archive name> Looks for a directory named <archive nam

Alexander Sago 1 Oct 31, 2021
A command-line tool to generate Linux manual pages from C source code.

mangen A command-line tool to generate Linux manual pages from C source code. Description mangen is, as said above, a program to generate Linux manual

null 2 Nov 15, 2021
CodeCompactor is an open source program designed for reducing the size of your code!

CodeCompacter An exciting, new and open source program for reducing the length of your code! Usage: ./CodeCompacter {ARGUMENTS} Arguments: -L {languag

Henry Dewsnap 1 Nov 28, 2021
Small header only C++ library for writing multiplatform terminal applications

Terminal Terminal is small header only library for writing terminal applications. It works on Linux, macOS and Windows (in the native cmd.exe console)

Jupyter Xeus 274 Jan 2, 2023