Skip to content

jedib0t/go-pretty

Repository files navigation

go-pretty

Go Reference Build Status Coverage Status Go Report Card Quality Gate Status License: MIT

Utilities to prettify console output of tables, lists, progress bars, text, and more with a heavy emphasis on customization and flexibility.

Quick Start

go get github.com/jedib0t/go-pretty/v6

Import the packages you need:

import (
    "github.com/jedib0t/go-pretty/v6/table"
    "github.com/jedib0t/go-pretty/v6/list"
    "github.com/jedib0t/go-pretty/v6/progress"
    "github.com/jedib0t/go-pretty/v6/text"
)

Note: Current major version is v6. See Go modules versioning for details.

Packages

Table

Pretty-print tables with colors, auto-merge, sorting, paging, and multiple output formats (ASCII, HTML, Markdown, CSV, TSV).

+-----+------------+-----------+--------+-----------------------------+
|   # | FIRST NAME | LAST NAME | SALARY |                             |
+-----+------------+-----------+--------+-----------------------------+
|   1 | Arya       | Stark     |   3000 |                             |
|  20 | Jon        | Snow      |   2000 | You know nothing, Jon Snow! |
| 300 | Tyrion     | Lannister |   5000 |                             |
+-----+------------+-----------+--------+-----------------------------+
|     |            | TOTAL     |  10000 |                             |
+-----+------------+-----------+--------+-----------------------------+

Try it: go run github.com/jedib0t/go-pretty/v6/cmd/demo-table@latest colors

Tables with Colors within a Table in a Terminal

📖 Full documentation →

Progress

Track progress of one or more tasks with ETA, speed calculation, indeterminate indicators, and customizable styles.

Progress Demo in a Terminal

📖 Full documentation →

List

Pretty-print hierarchical lists with multiple levels, indentation, and multiple output formats (ASCII, HTML, Markdown).

╭─ Game Of Thrones
│  ├─ Winter
│  ├─ Is
│  ╰─ Coming
│     ├─ This
│     ├─ Is
│     ╰─ Known
╰─ The Dark Tower
   ╰─ The Gunslinger

📖 Full documentation →

Text

Utility functions to manipulate strings/text with full ANSI escape sequence support. Used extensively by other packages in this repo.

Features: Alignment (horizontal/vertical), colors & formatting, cursor control, text transformation (case, JSON, time, URLs), string manipulation (pad, trim, wrap), and more.

📖 Full documentation →