Tutu 1.0.0

dotnet add package Tutu --version 1.0.0                
NuGet\Install-Package Tutu -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tutu" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tutu --version 1.0.0                
#r "nuget: Tutu, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tutu as a Cake Addin
#addin nuget:?package=Tutu&version=1.0.0

// Install Tutu as a Cake Tool
#tool nuget:?package=Tutu&version=1.0.0                

Tutu

Cross-platform Terminal Manipulation Library

Tutu is a pure-csharp, terminal manipulation library that makes it possible to write cross-platform text-based interfaces. It supports all UNIX and Windows terminals down to Windows 7 (not all terminals are tested). It is heavily inspired by the Rust library cross-term

Table of Contents

Features

  • Cross-platform
  • Multi-threaded (send, sync)
  • Detailed documentation
  • Few dependencies
  • Full control over writing and flushing output buffer
  • Is tty
  • Cursor
    • Move the cursor N times (up, down, left, right)
    • Move to previous / next line
    • Move to column
    • Set/get the cursor position
    • Store the cursor position and restore to it later
    • Hide/show the cursor
    • Enable/disable cursor blinking (not all terminals do support this feature)
  • Styled output
    • Foreground color (16 base colors)
    • Background color (16 base colors)
    • 256 (ANSI) color support (Windows 10 and UNIX only)
    • RGB color support (Windows 10 and UNIX only)
    • Text attributes like bold, italic, underscore, crossed, etc
  • Terminal
    • Clear (all lines, current line, from cursor down and up, until new line)
    • Scroll up, down
    • Set/get the terminal size
    • Exit current process
    • Alternate screen
    • Raw screen
    • Set terminal title
    • Enable/disable line wrapping
  • Event
    • Input Events
    • Mouse Events (press, release, position, button, drag)
    • Terminal Resize Events
    • Advanced modifier (SHIFT | ALT | CTRL) support for both mouse and key events and
    • futures Stream (feature 'event-stream')
    • Poll/read API

This crate supports all UNIX terminals and Windows terminals down to Windows 7; however, not all of the terminals have been tested. If you have used this library for a terminal other than the above list without issues, then feel free to add it to the above list - I really would appreciate it!

Getting Started

see the examples directory.

using Tutu;
using static Tutu.Commands.Style;

public static void Main()
{
    Console.Out
        .Execute(
            SetForegroundColor(Color.Blue),
            SetBackgroundColor(Color.Red),
            Print("Styled text here."),
            ResetColor
        );
}

Authors

  • Rafael Andrade - Project Owner & creator
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Tutu:

Package Downloads
Boto.Tutu

Integration between Boto and Tutu libraries.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 169 4/22/2024
0.1.6 263 6/16/2023
0.1.4 218 4/11/2023
0.1.3 186 4/11/2023
0.1.2 280 4/9/2023
0.1.1-tags-v0-1-1-beta0001 165 3/24/2023
0.1.1-tags-v0-1-1-bet-0001 183 3/25/2023
0.1.0-beta 172 3/10/2023