• Stars
    star
    4,630
  • Rank 8,699 (Top 0.2 %)
  • Language
    Go
  • License
    MIT License
  • Created over 12 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pure Go termbox implementation

Go Reference Build

IMPORTANT

This library is somewhat not maintained anymore. But I'm glad that it did what I wanted the most. It moved people away from "ncurses" mindset and these days we see both re-implementations of termbox API in various languages and even possibly better libs with similar API design. If you're looking for a Go lib that provides terminal-based user interface facilities, I've heard that gdamore/tcell is good (never used it myself). Also for more complicated interfaces and/or computer games I recommend you to consider using HTML-based UI. Having said that, termbox still somewhat works. In fact I'm writing this line of text right now in godit (which is a text editor written using termbox-go). So, be aware. Good luck and have a nice day.

Termbox

Termbox is a library that provides a minimalistic API which allows the programmer to write text-based user interfaces. The library is crossplatform and has both terminal-based implementations on *nix operating systems and a winapi console based implementation for windows operating systems. The basic idea is an abstraction of the greatest common subset of features available on all major terminals and other terminal-like APIs in a minimalistic fashion. Small API means it is easy to implement, test, maintain and learn it, that's what makes the termbox a distinct library in its area.

Installation

Install and update this go package with go get -u github.com/nsf/termbox-go

Examples

For examples of what can be done take a look at various examples in the _demos directory. You can try them with go run: go run _demos/keyboard.go

There are also some interesting projects using termbox-go:

  • godit is an emacsish lightweight text editor written using termbox.
  • gotetris is an implementation of Tetris.
  • sokoban-go is an implementation of sokoban game.
  • hecate is a hex editor designed by Satan.
  • httopd is top for httpd logs.
  • mop is stock market tracker for hackers.
  • termui is a terminal dashboard.
  • termloop is a terminal game engine.
  • xterm-color-chart is a XTerm 256 color chart.
  • gocui is a minimalist Go library aimed at creating console user interfaces.
  • dry is an interactive cli to manage Docker containers.
  • pxl displays images in the terminal.
  • snake-game is an implementation of the Snake game.
  • gone is a CLI pomodoroยฎ timer.
  • Spoof.go controllable movement spoofing from the cli.
  • rat lets you compose shell commands to build terminal applications.
  • httplab An interactive web server.
  • wot Wait time during command is completed.
  • 2048-go is 2048 in Go.
  • jv helps you view JSON on the command-line.
  • pinger helps you to monitor numerous hosts using ICMP ECHO_REQUEST.
  • vixl44 lets you create pixel art inside your terminal using vim movements.
  • zterm is a typing game inspired by http://zty.pe/.
  • gotypist is a fun touch-typing tutor following Steve Yegge's method.
  • cointop is an interactive terminal based UI application for tracking cryptocurrencies.
  • pexpo is a terminal sending ping tool written in Go.
  • jid is an interactive JSON drill down tool using filtering queries like jq.
  • nonograminGo is a nonogram (aka. picross) in Go.
  • tower-of-go is a tiny maze game that runs on the terminal.

More Repositories

1

gocode

An autocompletion daemon for the Go programming language
Go
5,007
star
2

termbox

Library for writing text-based user interfaces
C
1,943
star
3

godit

A very religious text editor
Go
565
star
4

jsondiff

JsonDiff library
Go
200
star
5

gothic

Tcl/Tk Go bindings
Go
148
star
6

gollvm

LLVM bindings for the Go programming language
Go
98
star
7

gotris

A classic tetris game written in Go programming language
Go
93
star
8

pnoise

Perlin noise benchmark
Lua
77
star
9

obkey

ObKey - Openbox Key Editor
Python
71
star
10

sseculling

SSE Frustum Culling Demo
C++
66
star
11

mc

A very simple marching cubes example.
C++
63
star
12

golemon

Port of the lemon parser generator to the Go programming language
C
55
star
13

gogobject

GObject-introspection based bindings generator
Go
47
star
14

gocovgui

A simple GUI wrapper for the gocov coverage analysis tool
Go
42
star
15

krawl

Krawl programming language compiler
C++
40
star
16

bmpanel2

bmpanel version 2
C
35
star
17

bin2go

Binary to Go source file converter
Go
24
star
18

ccode

An autocompletion daemon for the C programming language (vim, libclang, omnifunc)
C
23
star
19

imgui-rust

Alternative (personal) imgui rust bindings
Rust
20
star
20

sexp

S-expressions parser in the Go programming language
Go
19
star
21

nextgame

Work-in-progress "voxel" game or game engine.
C
17
star
22

bmpanel

bmpanel - lightweight, netwm compliant, x11 panel with desktop switcher, taskbar, systray and clock
C
16
star
23

tulib

Termbox Utilities Library
Go
14
star
24

libtorgo

BitTorrent Go library
Go
12
star
25

gortfm

Documentation generator for the Go programming language
Go
11
star
26

emacskeys

QtCreator plugin targeting emacs users
C++
11
star
27

gomandel

Go mandelbrot demo program
Go
9
star
28

sqlrace

SQL Race condition demo
Go
8
star
29

torgo

BitTorrent client and a tool written in Go
Go
8
star
30

ancient

A toy compiled programming language
C
8
star
31

interlua

C++11/Lua bindings generator
C++
6
star
32

vulkangen

Vulkan C++ wrapper generator
Go
6
star
33

vrmp

VR media player for linux
Rust
5
star
34

lib99

C
5
star
35

libzbs

Experimental C++11 cross-platform software utility library
C++
5
star
36

shebang

Shebang scripting language
Go
4
star
37

changedir

utility that helps you maintain visited directories history
Go
3
star
38

tbclock

tty-clock clone based on termbox
C
3
star
39

sqlbatch

WIP
Go
3
star
40

cppmandel

Multihreaded mandelbrot set renderer using experimental C++ coroutines.
C++
3
star
41

shell-util

Shell scripting helper functions for deno
TypeScript
3
star
42

sx

Sx file format
Go
3
star
43

goal

Go makefile templates system
Go
2
star
44

GodotSlerpTest

Just a test case
GDScript
2
star
45

jsondiff-demo

github.com/nsf/jsondiff demo
JavaScript
2
star
46

depsinfo

analyze dependencies and libraries of a deno script
TypeScript
1
star
47

packeter

Channel <-> network connection adapter library
Go
1
star