Skip to content

LoopPerfect/rxterm

Repository files navigation

RxTerm ⚡⌨️

A C++ library for functional-reactive terminals. RxTerm is a lean alternative to ncurses for many applications.

terminal

Build Instructions

The library builds with Buckaroo and either Buck or Bazel. It requires a C++ 14 compiler.

buckaroo install

# Buck
buck build :rxterm

# Bazel
bazel build :rxterm

To run the demo:

# Buck
buck run :main

# Bazel
BAZEL_CXXOPTS="-std=c++14" bazel run :main

Usage

To install this library into your project:

buckaroo add github.com/loopperfect/rxterm@*

Refer to rxterm/apps/main.cpp for an example.

Progress

  • ANSI Output
  • Reusable components
  • Managed console input
  • Terminal width detection
  • Windows support

Contributions are very welcome! 💖

Windows Support

  • VT100 escape sequences are enabled by default in msys2, mingw and cygwin.
  • Cmd.exe and Powershell may require explicit activation of terminal mode. The easiest way is to call system(" ") at the start of your application.

More info: https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences https://larsfosdal.blog/2018/08/31/did-you-know-that-you-can-enable-vt100-terminal-emulation-in-powershell-as-well-as-the-cmd-window/