rang - A Minimal, Header only Modern c++ library for terminal goodies πŸ’„βœ¨

  •        13

rang only depends on C++ standard library, unistd.h system header on unix and windows.h & io.h system headers on windows based systems. In other words, you don't need any 3rd party dependencies. rang is a single header-only library. Put rang.hpp in the include folder directly into the project source tree or somewhere reachable from your project.

https://agauniyal.github.io/rang/
https://github.com/agauniyal/rang

Tags
Implementation
License
Platform

   




Related Projects

cppinsights - C++ Insights - See your source code with the eyes of a compiler

  •    C++

C++ Insights is a clang-based tool which does a source to source transformation. Its goal is it to make things visible which normally, and intentionally, happen behind the scenes. It's about the magic the compiler does for us to make things work. You can see all the compiler provided functions. Also the downcast from Derived to Base.

doctest - The fastest feature-rich C++11 single-header testing framework for unit tests and TDD

  •    C++

doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of magnitude) and runtime compared to other feature-rich alternatives. It brings the ability of compiled languages such as D / Rust / Nim to have tests written directly in the production code by providing a fast, transparent and flexible test runner with a clean interface. The framework is and will stay free but needs your support to sustain its development. There are lots of new features and maintenance to do. If you work for a company using doctest or have the means to do so, please consider financial support. Monthly donations via Patreon and one-offs via PayPal.

modern-cpp-features - A cheatsheet of modern C++ language and library features.

  •    

Many of these descriptions and examples come from various resources (see Acknowledgements section), summarized in my own words. Also, there are now dedicated readme pages for each major C++ version.

Fit - C++ function utility library

  •    C++

Fit is a header-only C++11/C++14 library that provides utilities for functions and function objects, which can solve many problems with much simpler constructs than whats traditionally been done with metaprogramming. This requires a C++11 compiler. There are no third-party dependencies. This has been tested on clang 3.5-3.8, gcc 4.6-6.2, and Visual Studio 2015. Gcc 5.1 is not supported at all, however, gcc 5.4 is supported.


magic_get - std::tuple like methods for user defined types without any macro or boilerplate code

  •    C++

This C++14 library is meant for accessing structure elements by index and providing other std::tuple like methods for user defined types without any macro or boilerplate code. Distributed under the Boost Software License, Version 1.0.

hof - Higher-order functions for c++

  •    C++

HigherOrderFunctions is a header-only C++11/C++14 library that provides utilities for functions and function objects, which can solve many problems with much simpler constructs than whats traditionally been done with metaprogramming. This requires a C++11 compiler. There are no third-party dependencies. This has been tested on clang 3.5-3.8, gcc 4.6-7, and Visual Studio 2015 and 2017.

dyno - Runtime polymorphism done right

  •    C++

At this point, this library is experimental and it is a pure curiosity. No stability of interface or quality of implementation is guaranteed. Use at your own risks. Dyno solves the problem of runtime polymorphism better than vanilla C++ does. It provides a way to define interfaces that can be fulfilled non-intrusively, and it provides a fully customizable way of storing polymorphic objects and dispaching to virtual methods. It does not require inheritance, heap allocation or leaving the comfortable world of value semantics, and it can do so while outperforming vanilla C++.

RakNet - RakNet is a cross platform, open source, C++ networking engine for game programmers.

  •    C

------------------------------------------ See Help\swigtutorial.html Upgrading from version 3 ------------------------------------------ See 3.x_to_4.x_upgrade.txt Windows users (Visual Studio 2008 and 2010) ----------------------------------------- Load RakNet_VS2008.sln and convert if necessary.After the project conversion, if you encounter error MSB4006,follow the steps below to fix it:1. Open project properties2. Click on "Common Properties"3. Click on "Framework and References"4. Look

ponder - C++ reflection library

  •    C++

V1 replaced Boost with C++11. V2 added Lua bindings. V3 refactored to remove some warts, ease future development, and re-add serialisation. API is evolving. Ponder is a C++ multi-purpose reflection library. It provides an abstraction for most of the high-level concepts of C++: classes, enumerations, functions, properties.

Vc - SIMD Vector Classes for C++

  •    C++

Recent generations of CPUs, and GPUs in particular, require data-parallel codes for full efficiency. Data parallelism requires that the same sequence of operations is applied to different input data. CPUs and GPUs can thus reduce the necessary hardware for instruction decoding and scheduling in favor of more arithmetic and logic units, which execute the same instructions synchronously. On CPU architectures this is implemented via SIMD registers and instructions. A single SIMD register can store N values and a single SIMD instruction can execute N operations on those values. On GPU architectures N threads run in perfect sync, fed by a single instruction decoder/scheduler. Each thread has local memory and a given index to calculate the offsets in memory for loads and stores. Current C++ compilers can do automatic transformation of scalar codes to SIMD instructions (auto-vectorization). However, the compiler must reconstruct an intrinsic property of the algorithm that was lost when the developer wrote a purely scalar implementation in C++. Consequently, C++ compilers cannot vectorize any given code to its most efficient data-parallel variant. Especially larger data-parallel loops, spanning over multiple functions or even translation units, will often not be transformed into efficient SIMD code.

Boost-Cookbook - Online examples from "Boost C++ Application Development Cookbook":

  •    C++

This repository contains all the code examples from the Boost C++ Application Development Cookbook, Second Edition (ISBN: 9781787282247), Packt Publishing, by Antony Polukhin. Compile and Run Examples Online.

Chalk - Terminal string styling done right

  •    Javascript

Chalk comes with an easy to use composable API where you just chain and nest the styles you want. Chain styles and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that chalk.red.yellow.green is equivalent to chalk.green.

kleur - The fastest Node.js library for formatting terminal text with ANSI colors~!

  •    Javascript

Toggle color support as needed; kleur assumes it's always enabled. Any kleur method returns a String (when invoked, not chained). It's up to the developer to pass the output to destinations like console.log, process.stdout.write, etc.

nameof - Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum

  •    C++

Header-only C++17 library provides nameof macros and functions to simply obtain the name of a variable, type, function, macro, and enum. Nameof returns std::string_view. If argument does not have name, returns empty string.

entt - Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more

  •    C++

Consider it a work in progress. The whole API is also fully documented in-code for those who are brave enough to read it. Currently, EnTT is tested on Linux, Microsoft Windows and OS X. It has proven to work also on both Android and iOS. Most likely it will not be problematic on other systems as well, but has not been sufficiently tested so far.

rpclib - rpclib is a modern C++ msgpack-RPC server and client library

  •    C++

When srv.run() is called, rpclib starts the server loop which listens to incoming connections and tries to dispatch calls to the bound functions. The functions are called from the thread where run was called from. There is also async_run that spawns worker threads and returns immediately. All planned 1.0.0 features are done and tested; the current state is production-ready.

PEGTL - Parsing Expression Grammar Template Library

  •    C++

The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). Grammars are written as regular C++ code, created with template programming (not template meta programming), i.e. nested template instantiations that naturally correspond to the inductive definition of PEGs (and other parser-combinator approaches).