Skip to content
forked from chjj/blessed

A high-level terminal interface library for node.js.

License

Notifications You must be signed in to change notification settings

properCase/blessed

 
 

Repository files navigation

blessed

A curses-like library with a high level terminal interface API for node.js.

blessed

Blessed is over 16,000 lines of code and terminal goodness. It's completely implemented in javascript, and its goal consists of two things:

  1. Reimplement ncurses entirely by parsing and compiling terminfo and termcap, and exposing a Program object which can output escape sequences compatible with any terminal.

  2. Implement a widget API which is heavily optimized for terminals.

The blessed renderer makes use of CSR (change-scroll-region), and BCE (back-color-erase). It draws the screen using the painter's algorithm and is sped up with smart cursor movements and a screen damage buffer. This means rendering of your application will be extremely efficient: blessed only draws the changes (damage) to the screen.

Blessed is arguably as accurate as ncurses, but even more optimized in some ways. The widget library gives you an API which is reminiscent of the DOM. Anyone is able to make an awesome terminal application with blessed. There are terminal widget libraries for other platforms (primarily [python][urwid] and [perl][curses-ui]), but blessed is possibly the most DOM-like (dare I say the most user-friendly?).

Blessed has been used to implement other popular libraries and programs. Examples include: the [slap text editor][slap] and [blessed-contrib][contrib]. The blessed API itself has gone on to inspire [termui][termui] for Go.

Documentation

View the full documentation on our Docsify site. The markdown documents are in the /docs directory.

About

A high-level terminal interface library for node.js.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.9%
  • Other 0.1%