DEV Community

Jitendra
Jitendra

Posted on

A spinner (aka loading animation) for terminal in Go

GitHub logo adhocore / chin

A GO lang library to show a spinner as user waits for any long running jobs to finish.

adhocore/chin

Go Report Lint Donate 15 Donate 25 Donate 50 Tweet

A GO lang command line tool to show a spinner as you wait for some long running jobs to finish.

This is a simple project but carries a tremendous value to me [❤️].

Usage

Install chin:

go get -u github.com/adhocore/chin
Enter fullscreen mode Exit fullscreen mode

Use in Go code with WaitGroup:

var wg sync.WaitGroup

s := chin.New().WithWait(&wg)
go s.Start()

// invoke some long running task
// (you can also call s.Stop() from that task)
longTask(&wg)

s.Stop()
wg.Wait()
Enter fullscreen mode Exit fullscreen mode

Refer example for more (there is also one without waitgroup).

To run the examples: go run examples/main.go

Screen

CHIN


Other projects

My other golang projects you might find interesting and useful:

  • gronx - Lightweight, fast and dependency-free Cron expression parser (due checker), task scheduler and/or daemon for Golang (tested on v1.13 and…

Usage

Install chin:

go get -u github.com/adhocore/chin
Enter fullscreen mode Exit fullscreen mode

Use in Go code with WaitGroup:

var wg sync.WaitGroup

s := chin.New().WithWait(&wg)
go s.Start()

// invoke some long running task
// (you can also call s.Stop() from that task)
longTask(&wg)

s.Stop()
wg.Wait()
Enter fullscreen mode Exit fullscreen mode

Refer example for more (there is also one without waitgroup).

Screen

CHIN

Feedback?

Just drop a comment here, or open issues/PR in the repo. Thanks. 😎

Top comments (0)